【问题标题】:Pass string variable into R function将字符串变量传递给 R 函数
【发布时间】:2013-07-16 20:13:48
【问题描述】:

我想将一个变量名传递给一个函数,但似乎做不到。简直……

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)

【问题讨论】:

  • 您能否将您使用的包的名称放在代码的开头,以使其更具可复制性。谢谢
  • 你不能只传递一个公式作为参数吗?

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


【解决方案1】:

试试这个:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 2020-10-03
    • 2016-12-03
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    相关资源
    最近更新 更多