0

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

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 循环中获得的每个矩阵。有没有简单的方法可以做到这一点?谢谢你!!吉比

4

1 回答 1

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)
)
于 2013-01-28T17:21:03.793 回答