[问题] dplyr - 如何用字串来操作filter

楼主: jobs (晴时多云)   2014-02-10 22:42:31
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我想要一个比较一般化的方法来使用 dplyr 里的各种 functions
这些 function 通常需要将 data frame 的 column name 传入
我希望可以用字串来指定我想要的 column
[程式范例]:
library(dplyr)
library(hflights)
hflights_df <- tbl_df(hflights)
filter(hflights_df, Month == 1, DayofMonth == 1)
#No problem
m="Month"
d="DayofMonth"
filter(hflights_df, get(m) == 1, get(d) == 1)
#Error in get("Month") : object 'Month' not found
作者: celestialgod (天)   2014-02-11 01:28:00
我只会用eval, parse, paste写....如果没有其他大大有更好的方法,小弟再写我的想法
作者: Wush978 (拒看低质媒体)   2014-02-12 21:15:00
filter(hflights_df, hflights_df[[m]] == 1)也许这是你要的
楼主: jobs (晴时多云)   2014-02-13 02:42:00
感谢楼上!! 那正是我想要的

Links booklink

Contact Us: admin [ a t ] ucptt.com