我有一個大對象列表(比如說100k元素)。每個元素都必須通過一個函數「process」進行處理,但是我想以大塊的形式進行處理......比如說20次傳遞,因爲我想將處理結果保存到硬盤文件中並保持內存空閒。處理大量的對象在R
我是新來的R,我知道它應該涉及一些應用魔法,但我不知道如何去做(但)。
任何指導將不勝感激。
一個小例子:
objects <- list();
for (i in 1:100){
objects <- append(objects, 500);
}
objects;
processOneElement <- function(x){
x/20 + 23;
}
我想處理一氣呵成第20個元素,並保存結果的話,處理在二去第二次20元,並保存結果...等等
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=""));
})
要接受指導,你必須首先提供指導,在[重複的例子]的形式(http://stackoverflow.com/q/5963269/324364)。添加可重複代碼 – joran
迄今爲止 – user13467
工作代碼已更新。 – user13467