1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
rcModelPLM <- function(y,row.effects=NULL, input.scale=NULL){
if (!is.matrix(y))
stop("argument should be matrix")
PsiCode <- 0
PsiK <- 1.345
if (is.null(row.effects)){
.Call("R_rlm_rma_default_model",y,PsiCode,PsiK,input.scale,PACKAGE="preprocessCore")
} else {
if (length(row.effects) != nrow(y)){
stop("row.effects parameter should be same length as number of rows")
}
if (abs(sum(row.effects)) > length(row.effects)*.Machine$double.eps){
stop("row.effects should sum to zero")
}
.Call("R_rlm_rma_given_probe_effects",y,as.double(row.effects),PsiCode,PsiK,input.scale,PACKAGE="preprocessCore")
}
}
rcModelWPLM <- function(y, w, row.effects=NULL, input.scale=NULL){
if (!is.matrix(y))
stop("argument should be matrix")
if (is.vector(w)){
if (length(w) != prod(dim(y))){
stop("weights are not correct length")
}
} else if (is.matrix(w)){
if (!all(dim(w) == dim(y))){
stop("weights should be same dimension as input matrix")
}
}
if (any(w < 0)){
stop("weights should be no negative")
}
PsiCode <- 0
PsiK <- 1.345
if (is.null(row.effects)){
.Call("R_wrlm_rma_default_model",y,PsiCode,PsiK,as.double(w),input.scale,PACKAGE="preprocessCore")
} else {
if (length(row.effects) != nrow(y)){
stop("row.effects parameter should be same length as number of rows")
}
if (abs(sum(row.effects)) > length(row.effects)*.Machine$double.eps){
stop("row.effects should sum to zero")
}
.Call("R_wrlm_rma_given_probe_effects",y,as.double(row.effects),PsiCode,PsiK,as.double(w),input.scale,PACKAGE="preprocessCore")
}
}
rcModelMedianPolish <- function(y){
if (!is.matrix(y))
stop("argument should be matrix")
PsiCode <- 0
PsiK <- 1.345
.Call("R_medianpolish_rma_default_model",y,PACKAGE="preprocessCore")
}
subrcModelMedianPolish <- function(y,group.labels){
if (!is.matrix(y))
stop("argument should be matrix")
if (!is.double(y) & is.numeric(y))
y <- matrix(as.double(y),dim(y)[1],dim(y)[2])
else if (!is.numeric(y))
stop("argument should be numeric matrix")
rowIndexList <- convert.group.labels(group.labels)
x <- .Call("R_sub_rcModelSummarize_medianpolish", y, rowIndexList,PACKAGE="preprocessCore")
names(x) <- names(rowIndexList)
x
}
subrcModelPLM <- function(y,group.labels,row.effects=NULL, input.scale=NULL){
if (!is.matrix(y))
stop("argument should be matrix")
if (!is.double(y) & is.numeric(y))
y <- matrix(as.double(y),dim(y)[1],dim(y)[2])
else if (!is.numeric(y))
stop("argument should be numeric matrix")
rowIndexList <- convert.group.labels(group.labels)
PsiCode <- 0
PsiK <- 1.345
if (is.null(row.effects)){
x <- .Call("R_sub_rcModelSummarize_plm", y, rowIndexList, PsiCode, PsiK, input.scale,PACKAGE="preprocessCore")
names(x) <- names(rowIndexList)
x
} else {
stop("row.effects not yet implemented for subrcModelPLM")
if (length(row.effects) != nrow(y)){
stop("row.effects parameter should be same length as number of rows")
}
if (abs(sum(row.effects)) > 10*.Machine$double.eps){
stop("row.effects should sum to zero")
}
.Call("R_rlm_rma_given_probe_effects",y,as.double(row.effects),PsiCode,PsiK,input.scale,PACKAGE="preprocessCore")
}
}
|