0

我想对 a 的每一行应用一个函数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 不是数组,而是具有非空暗值的类的对象(例如数据框),如果它是二维的(例如,数据框架)或通过 as.array。

所以 $ 索引是不合适的。

于 2013-08-19T14:51:37.927 回答