400,000行と約50列で構成されるデータフレームがあります。このデータフレームは非常に大きいため、処理するには計算量が多すぎます。このデータフレームを小さなデータフレームに分割した後、実行したい関数を実行し、最後にデータフレームを再構成します。
このデータフレームを分割するために使用したいグループ化変数はありません。行数で分割したいだけです。たとえば、この400'000行のテーブルを400個の1'000行のデータフレームに分割したいとします。どうすればよいですか?
独自のグループ化変数を作成します。
_d <- split(my_data_frame,rep(1:400,each=1000))
_
ddply
パッケージのplyr
関数、またはdplyr
のgroup_by()
関数も検討する必要があります。
編集済み簡潔にするため、Hadleyのコメントの後。
データフレームの行数がわからない場合、またはデータフレームの長さが目的のチャンクサイズと等しくない場合は、次のようにすることができます。
_chunk <- 1000
n <- nrow(my_data_frame)
r <- rep(1:ceiling(n/chunk),each=chunk)[1:n]
d <- split(my_data_frame,r)
_
あなたも使うことができます
_r <- ggplot2::cut_width(1:n,chunk,boundary=0)
_
将来の読者のために、dplyr
および_data.table
_パッケージに基づくメソッドは、データフレームでグループ単位の操作を実行するためにおそらく(はるかに)高速になります。