简单数据框:
df=data.frame(rpm=c(3000,4000,5000))
dplyr
filter
命令正常工作:
> filter(df, rpm == 3000)
rpm
1 3000
但是,我想使用filter_
版本,因为我告诉它更安全的功能。如果不是这样,我会坚持使用subset
。这里发生了什么:
> filter_(df, "rpm" == 3000)
[1] rpm
<0 rows> (or 0-length row.names)
绝对不行。发生了什么?
答案 0 :(得分:3)
我们可以尝试interp
library(layzeval)
df %>%
filter_(interp(~ nm==3000, nm=as.name("rpm")))
# rpm
#1 3000