将字符串变量传递给R函数

时间:2013-07-16 20:13:48

标签: r parameter-passing user-defined-functions

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

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)

1 个答案:

答案 0 :(得分:2)

试试这个:

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

您要做的是即时编写公式。但是,公式是quoted语言的一部分(IIRC)。因此,您的x未经过评估,但在数据中搜索为x。

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