【问题标题】:R - How do I pass the value of a variable as an argument?R - 如何将变量的值作为参数传递?
【发布时间】:2016-12-09 14:30:09
【问题描述】:

这里是菜鸟。我正在尝试将“xmove1”、“xmove2”和“xmove3”的值传递给过滤器命令。

xmove1 <- "X3"
xmove2 <- "X1"
xmove3 <- "X5"

xtemp <- filter(fullTable, xmove1 == 1, xmove2 == 2, xmove3 == 3)

问题在于,它不是读取 xmove1 的值,而是将其读取为字符串 - “xmove1”。

我也尝试过使用“as.name”,但结果似乎是一样的。

xtemp <- filter(fullTable, as.name(xmove1) == 1, as.name(xmove2) == 2, as.name(xmove3) == 3)

【问题讨论】:

  • 你能展示一个预期输出的例子吗?什么是全桌?
  • dplyr 编程非常有趣(讽刺检测)
  • @DataTx 过滤器应该扫描具有 362880 个对象的矩阵中模式的多个排列,因此很难给出输出的具体示例。目前,输出只是一个空数据框,因此任何填充该数据框的答案都可能是正确答案。

标签: r arguments dplyr


【解决方案1】:

如果您想动态提供列名,请使用 dplyr 函数的标准评估替代方法(有关详细信息,请参阅 vignette("nse"))。

你可以

filter_(fullTable, .dots=list(
    bquote(.(as.name(xmove1)) == 1), 
    bquote(.(as.name(xmove2)) == 2), 
    bquote(.(as.name(xmove3)) == 3)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 2018-09-08
    相关资源
    最近更新 更多