オブジェクトのリストがたくさんあります(たとえば、100k要素)。各要素は関数「process」で処理する必要がありますが、処理をチャンクで実行したいと思います。たとえば、処理結果をハードドライブファイルに保存し、動作メモリを空けておきたいので、たとえば20パスとします。
私はRを初めて使用し、適用魔法を使用する必要があることは知っていますが、その方法は(まだ)わかりません。
任意のガイダンスをいただければ幸いです。
小さな例:
objects <- list();
for (i in 1:100){
objects <- append(objects, 500);
}
objects;
processOneElement <- function(x){
x/20 + 23;
}
最初の20個の要素を一度に処理して結果を保存し、次に次の20個の要素を2回目に処理して結果を保存したい...など。
objects <- list();
for (i in 1:100){
objects <- append(objects, 500);
}
objects;
process <- function(x){
x/20 + 23;
}
results <- lapply(objects, FUN=process)
index <- seq(1, length(objects), by=20);
lapply(index, function(idx1) {
idx2 <- min(idx1+20-1, length(objects));
batch <- lapply(idx:idx2, function(x) {
process(objects[[x]]);
})
write.table(batch, paste("batch", idx1, sep=""));
})