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 に答える