更新时间:2023-11-10 12:44:28
在较新的版本中,我们可以使用创建带引号的变量,然后取消引号(UQ
或!!
)进行评估
In the newer versions, we can use we can create the variables as quoted and then unquote (UQ
or !!
) for evaluation
var <- quo(color)
filter(df, UQ(var) == "blue")
# color value
#1 blue 1
#2 blue 3
#3 blue 4
由于运算符的优先级,我们可能要求()
环绕!!
Due to operator precedence, we may require ()
to wrap around !!
filter(df, (!!var) == "blue")
# color value
#1 blue 1
#2 blue 3
#3 blue 4
在新版本中,||
具有更高的优先级,因此
With new version, ||
have higher precedence, so
filter(df, !! var == "blue")
应该工作(如@Moody_Mudskipper所评论)
should work (as @Moody_Mudskipper commented)
我们也可以使用:
filter(df, get(var, envir=as.environment(df))=="blue")
#color value
#1 blue 1
#2 blue 3
#3 blue 4
重新排列了解决方案的顺序
Rearranged the order of solutions