【发布时间】:2016-02-11 10:47:11
【问题描述】:
简单的数据框:
df=data.frame(rpm=c(3000,4000,5000))
dplyrfilter 命令工作正常:
> filter(df, rpm == 3000)
rpm
1 3000
但是,我想使用filter_ 版本,因为有人告诉我它在功能上更安全。如果不是因为这个,我会坚持使用subset。以下是发生的事情:
> filter_(df, "rpm" == 3000)
[1] rpm
<0 rows> (or 0-length row.names)
肯定不行。发生了什么事?
【问题讨论】:
-
阅读this
-
filter_(df, "rpm == 3000") -
在 SE 形式中引用参数通常最好使用
~完成,如filter_(df, ~rpm == 3000) -
嗯……很复杂。
-
@DeltaIV 值得坚持使用
dplyr和magrittr、tidyr等。只有尝试在它们之上构建可适应的函数时,才会真正复杂化。问题因重复而被搁置 - 所以我无法添加为答案。