15
我有一個由400,000行和大約50列組成的數據幀。由於這個數據幀非常大,因此處理計算量過大。 我想將這個數據框拆分成更小的數據框,之後我將運行我想運行的函數,然後在最後重新組合數據框。按行數拆分數據幀
沒有我想用來分割這個數據框的分組變量。我只想按行數分割它。例如,我想將這個400'000行表分成400個1'000行的數據框。 我該怎麼做?
我有一個由400,000行和大約50列組成的數據幀。由於這個數據幀非常大,因此處理計算量過大。 我想將這個數據框拆分成更小的數據框,之後我將運行我想運行的函數,然後在最後重新組合數據框。按行數拆分數據幀
沒有我想用來分割這個數據框的分組變量。我只想按行數分割它。例如,我想將這個400'000行表分成400個1'000行的數據框。 我該怎麼做?
製作您自己的分組變量。
d <- split(my_data_frame,rep(1:400,each=1000))
你也應該考慮從plyr
包ddply
功能,或者從dplyr
的group_by()
功能。
編輯爲簡潔起見,後哈德利的意見。
如果你不知道有多少行是在數據幀,或者如果數據幀可能是一個長度不等你想要的塊大小,你可以做
chunk <- 1000
n <- nrow(my_data_frame)
r <- rep(1:ceiling(n/chunk),each=chunk)[1:n]
d <- split(my_data_frame,r)
您也可以使用
根據該dplyr
和
data.table
包
r <- ggplot2::cut_width(1:n,chunk,boundary=0)
對於未來的讀者,方法可能會是(多)對數據幀進行集體爲單位的運算速度更快。
謝謝!這很好用!是的,我會研究plyr軟件包,因爲它看起來非常有用。 – Pascal
你爲什麼使用'split.data.frame'而不是'split'?你不需要強迫分組變量成爲一個因子。 – hadley
不確定這些強制/方法調度是否可行,並且懶得花時間去測試。謝謝。 –