我需要根据列表中包含的多个模式过滤df的列。我的总体目标是将其应用于闪亮的应用程序的checkboxGroupInput命令。
我需要过滤列,例如在数据框中说“ bank”列,说“ df”。标准(例如“ bankA” |“ bankC” |“ bankE”)包含在列表中(例如,selectedbanks <-list(“ bankA”,“ bankC”,“ bankE”))。我想在df $ bank列中选择满足selectedbanks中任何条件的任何行。
df<-data.frame(a=1:5,bank=c("bankA","bankB","bankC","bankD","bankE"))
selectedbanks<-list("bankA","bankC","bankE")
我尝试过
df %>% filter(bank==selectedbanks)
既不总是有效的,也不是很正确,因为事实上R会显示有关筛选条件中所涉及对象的不同长度的错误。
我知道正确的基本方法是使用
df %>% filter(bank==selectedbanks[1] | bank==selectedbanks[2] | bank==selectedbanks[3])
,但这并不能使我立即从类型为checkboxGroupInput的闪亮应用程序中以可变长度一次性获取列表selectedbanks作为input $ selectedbanks的事实
我想要的
银行 1 1银行 2 3银行 3 5 bankE
我得到了什么 一个银行 1 1银行A
答案 0 :(得分:0)
您必须使用%in%:
# Library
library(dplyr)
# Your data
df<-data.frame(a=1:5,bank=c("bankA","bankB","bankC","bankD","bankE"))
# Your banks
selectedbanks<-c("bankA","bankC","bankE")
# Filtering
df %>% filter(bank %in% selectedbanks)