2019-02-28
閱讀量:
1375
Dplyr過(guò)濾器使用動(dòng)態(tài)列名和動(dòng)態(tài)值
我有
df = data.frame(A=1:10, B=sample(c('TT', 'TG', 'GG'), 10, replace=T))
# df
# A B
#1 1 TG
#2 2 TG
#3 3 GG
#4 4 TT
#5 5 TT
#6 6 TT
#7 7 GG
#8 8 TT
#9 9 TG
#10 10 TT
如果我指定列,我可以使用動(dòng)態(tài)值列表,如:
> vals=c('TT', 'GG')
> df%>% filter(B %in% !!vals)
A B
1 3 GG
2 4 TT
3 5 TT
4 6 TT
5 7 GG
6 8 TT
7 10 TT
現(xiàn)在我想添加以下內(nèi)容col='B':
df%>% filter(!!col %in% !!vals)
[1] A B
<0 rows> (or 0-length row.names)
解決辦法:使用:
df %>% filter(!!sym(col) %in% !!vals)
sym() 將您的字符串轉(zhuǎn)換為符號(hào),dplyr知道要評(píng)估該符號(hào)。
也df %>% filter(!!as.name(col) %in% !!vals)






評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論
0條評(píng)論