1

我想将变量名传递给函数,但似乎无法做到。简单地...

library (reshape)
test <- function(x) {
 cast(data, x ~ ., length)
}
test(ageg)

我得到这个回扣。

Error: Casting formula contains variables not found in molten data: x

我知道这很简单,但我找不到答案。我希望它简单地运行

cast(data, ageg ~ ., length)
4

1 回答 1

2

尝试这个:

test <- function (x) cast(data, as.formula(paste0(x , " ~ .")), length)

您正在尝试做的是即时编写公式。但是,公式作为quoted语言(IIRC)的一部分存在。因此,您x没有被评估,而是在您的数据中作为 x 查找。

另一方面,这样做是首先通过评估 x in 创建一个字符串paste0。然后使用 将字符串转换为公式as.formula

于 2013-07-16T20:19:11.520 回答