R 内ffdf
で、大規模なデータセットを操作するために使用しています。パッケージから使用ffdfdply
しffbase
て、特定の変数 (var) に従ってデータを分割し、var の一意の値を持つすべての観測値のいくつかの特性を計算します (たとえば、var の一意の値ごとの観測数)。これが可能かどうかを確認するためffdfdply
に、以下で説明する例を実行しました。
Petal.Width
私は、種ごとに分割し、それぞれの最小値を計算してSpecies
から、2 つの列を返し、それぞれに 3 つのエントリをリストし、Species
その最小値Petal.Width
をリストすることを期待していましたSpecies
。期待される出力:
Species min_pw
1 setosa 0.1
2 versicolor 1.0
3 virginica 1.4
ただしBATCHBYTES=5000
、1 つは 2 つの Species を含み、もう 1 つは 1 つの Species を含む 2 つの分割を使用します。これにより、次の結果が得られます。
Species min_pw
1 setosa 0.1
2 virginica 1.4
BATCHBYTES
2000に変更すると、強制的ffdfdply
に 3 つの分割が使用されるため、上記の期待される出力が得られます。ただし、「分割」に割り当てられた変数の一意の値ごとに分割を強制する別の方法が必要です。これを実現する方法はありますか?または、必要な結果を得るために他に何か提案はありますか?
ffiris <- as.ffdf(iris)
result <- ffdfdply(x = ffiris,
split = ffiris$Species,
FUN = function(x) {
min_pw <- min(x$Petal.Width)
data.frame(Species=x$Species, min_pw= min_pw)
},
BATCHBYTES = 5000,
trace=TRUE
)
dim(result)
dim(iris)
result