【发布时间】:2016-03-17 03:39:19
【问题描述】:
我有一个与数据框中的列同名的变量:
df <- data.frame(a=c(1,2,3), b=c(4,5,6))
b <- 5
我想获取 df$b == b 所在的行,但 dplyr 将其解释为 df$b == df$b:
df %>% filter(b == b) # interpreted as df$b == df$b
# a b
# 1 1 4
# 2 2 5
# 3 3 6
如果我更改变量名,它会起作用:
B <- 5
df %>% filter(b == B) # interpreted as df$b == B
# a b
# 1 2 5
我想知道是否有更好的方法告诉filter b 指的是外部变量。
【问题讨论】:
-
这可能会帮助您 file:///Library/Frameworks/R.framework/Versions/3.2/Resources/library/dplyr/doc/nse.html
-
@MLavoie 这是什么?最好提供this link。
-
@Pascal。前几天有类似的问题,我不记得它在哪里。但看起来环境在这里很重要,这个链接解释了如何在类似的上下文中使用 dplyr 的动词。但我可能不明白这个问题,所以如果是这样,请忽略我的评论:)
-
@MLavoie 你误解了我的评论。您提供了本地文件的路径,该路径仅适用于 OSX 用户,不适用于 Linux 和 Windows 用户。我只是为同一个文件提供了 Internet 版本。
-
在控制台中输入
vignette("nse")是另一种选择