经过一些计算后,我对如何从输入矩阵的每一行写入多个文件感到失望。我现在使用的代码如下所示:
akl <- function(dii) {
ddi <- as.matrix(dii)
m <- rowMeans(ddi)
M <- mean(m) # mean(ddi) == mean(m)
r <- sweep(ddi, 1, m)
b <- sweep(r, 2, m)
return(b + M)
}
require(plyr)
akl.list <- llply(1:nrow(aa), function(i) {
akl(dist(aa[i, ]))
})
我创建的akl.list对于大输入矩阵而言太大了,我无法将其存储在RAM中。我的想法是在文件中写入我在llply循环中获得的每个矩阵。有一个简单的方法吗? 谢谢!! gibbi
答案 0 :(得分:2)
您可以使用do_ply
,因为您只需要循环功能
d_ply(aa, 1,function(row){
a <- akl(dist(row))
write.table(a) ## you save in a file here
},.progress='text' ## to show progress (optional)
)