Я обрабатываю специальный объект - объект SliceData из Matrix_eQTL - в al oop, и мне интересно, может ли он быть переписан любой функцией в «apply».
Позвольте мне объясните это на игрушечном примере. Сначала я создаю данные игрушек с помощью следующих сценариев.
library(MatrixEQTL)
set.seed(5)
gene_mat = matrix(data = rnorm(200000, mean=50, sd=10), nrow = 2000, ncol = 100)
gene = SlicedData$new(gene_mat);
gene$ResliceCombined(200)
Здесь у меня есть пользовательская функция invnorm
.
invnorm <- function(expression){
return(qnorm((rank(expression, na.last="keep") - 0.5)/sum(!is.na(expression))))
}
И я хочу применить это invnorm
в каждой строке каждого среза gene
объекта, который может быть реализован с помощью следующих сценариев
for( sl in 1:length(gene) ){
mat = gene[[sl]]
mat = t(apply(mat, 1, invnorm))
gene[[sl]] = mat
}
Так есть ли способ переписать это l oop любой функцией в apply
функция семьи? Заранее спасибо.