0

の各行に関数を適用したいdata.frame/data.table

cases <- expand.grid(a=c(TRUE,FALSE), b=c(TRUE,FALSE), c=c(TRUE,FALSE))

myFun <- function(data, row){
  otherFun(data, row[1], row[2], row[3])
}

apply(cases, 1, myFun, data=dt1)

これは機能しますが、

myFun <- function(data, row){
  otherFun(data, row$a, row$b, row$c)
}

これはうまくいきません。

列の順序に依存する必要がないようにする最善の方法は何ですか?

4

1 に答える 1

2

apply物事を行列に強制します。の詳細を参照してください?apply:

X が配列ではなく、null 以外の dim 値を持つクラスのオブジェクト (データ フレームなど) である場合、それが 2 次元 (たとえば、データフレーム) または as.array 経由。

したがって、$ インデックスは適切ではありません。

于 2013-08-19T14:51:37.927 に答える