R - 如何将变量的值作为参数传递?

时间:2016-08-03 18:12:16

标签: r arguments dplyr

Noob在这里。我试图传递" xmove1,"的值。 " xmove2,"和" xmove3"进入过滤器命令。

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

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

问题在于,它不是读取xmove1的值,而是将其作为字符串读取 - &#34; xmove1。&#34;

我也试过使用&#34; as.name,&#34;但结果似乎是一样的。

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

1 个答案:

答案 0 :(得分:1)

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

你可以

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