[問題] 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