我在R如果我把它應用到超過1000行的數據集電抗器的功能。因此,我想將我的數據集分成n個塊,每個塊不超過1000行。把一個數據集分成塊
這裏是我目前使用做分塊的功能:
chunkData <- function(Data,chunkSize){
Chunks <- floor(0:(nrow(Data)-1)/(chunkSize))
lapply(unique(Chunks),function(x) Data[Chunks==x,])
}
chunkData(iris,100)
我想使這個功能更高效,使其運行在大型數據集的速度更快。
爲什麼不解決這個問題上有超過1000行對象扼流圈的功能? – 2012-01-06 19:19:23
是的,真的!您可能只需要瞭解內存管理,或者瞭解如何(而不是)組織數據。另外,定義「扼殺」。僅僅因爲1000行(*多少列)在你感到無聊之前完成,並不意味着10^5行的淨處理時間得到了改善。 – 2012-01-06 22:28:56
@CarlWitthoft和Josh:謝謝你的建議。我已經對這個函數進行了很多優化,但是它涉及到大量的數據轉換,它們吸收了內存,我認爲這是不可避免的。我實際上決定把它吸起來並逐行應用這個函數,這需要很長時間,但不會耗盡內存。 – Zach 2012-01-06 23:32:04