拆分列表并用R-plyr写多个文件?

时间:2013-01-28 16:50:44

标签: r plyr

经过一些计算后,我对如何从输入矩阵的每一行写入多个文件感到失望。我现在使用的代码如下所示:

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

1 个答案:

答案 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)
)