r - Why lapply or l_ply can't transform matrix? -


due big data matrix in ngs data, use l_ply apply multiplication transform signal matrix in list of lists. however, transformation didn't work original matrix unchanged. what's problem?

sitename=c("s1","s2") dataname=c("d3","d4","d5")  ml=list(list(matrix(1:12,4),matrix(13:24,4),matrix(25:36,4)),list(matrix(1:12,4),matrix(13:24,4),matrix(25:36,4))) names(ml)=sitename names(ml[[sitename[1]]])=dataname names(ml[[sitename[2]]])=dataname  sfs=c(2,3,4) names(sfs)=dataname  library(plyr)  scalechipseq2=function(x) { l_ply(dataname,function(y){ ml[[x]][[y]] <- ml[[x]][[y]]*as.numeric(sfs[y])}) }  l_ply(sitename,scalechipseq2) 

got answer stackoverflow thread. use <<- not <- assignment operator in function call change content of global variable.

update data frame via function doesn't work


Comments