4

おそらく非常に単純な質問ですが、変数を設定して、R の expand.grid から data.frame または data.table を作成できるようにしたいと考えていaますb

たとえばa=5b=3

同じ出力を取得できるようにしたいもの

expand.grid(seq(0,1,by=1/5),seq(0,1,by=1/5), seq(0,1,by=1/5))

そしてもしa=3、そしてb=4私は得るだろう

expand.grid(seq(0,1,by=1/3), seq(0,1,by=1/3), seq(0,1,by=1/3), seq(0,1,by=1/3))

つまりb、列の数です....そしてa、間隔のサイズです。

ありがとう

編集

a理想的には、約 100の数字を入れて、b約 30 を生成するのに高速でメモリ効率の良いものがあります...おそらく何かの形data.tableですか?

4

4 に答える 4

4

replicateこのようなものは、を使用して動作するはずですdo.call

exgrid <- function(a, b){
  do.call(expand.grid,replicate(b , seq(0,1,by = 1/a), simplify = FALSE))
}
于 2012-11-22T06:04:15.920 に答える
3

これにより、メモリの問題なしで 1 億行の data.frame (ffdf) が生成されます。パッケージffを使用しています。必要に応じて列を増やすことができます。列をいじると、かなりの量のデータが生成される可能性があることに注意してください。

require(ffbase)
x <- expand.ffgrid(ff(1:1000), ff(1:1000), ff(1:100))
dim(x)
x[1:5, ]
于 2012-11-22T10:29:20.227 に答える
2

これにより、必要なものに近づくことができると思います。

b <- 4    
expand.grid(rep(list(seq(0,1,by=1/3)), b))
于 2012-11-22T06:18:42.920 に答える