Есть ли способ отфильтровать фрейм данных по длинному списку? - PullRequest
0 голосов
/ 30 апреля 2019

Мне нужно отфильтровать столбец df по нескольким шаблонам, содержащимся в списке.Моя общая цель - применить это к команде checkboxGroupInput блестящего приложения.

Мне нужно отфильтровать столбец, скажем, столбец «банк» в моем фрейме данных, скажем «df».Критерии (например, "bankA" | "bankC" | "bankE") содержатся в списке (скажем, selectedbanks <-list ("bankA", "bankC", "bankE")).Я хочу выбрать любую строку в столбце df $ bank, которая удовлетворяет любому из условий в выбранных банках.</p>

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])

, но это не очень удобно, поскольку я получаю список selectedbanks как входные $ selectedbanks одновременнои с переменной длиной из блестящего приложения типа checkboxGroupInput

Что я хотел

банк 1 1 банкA 2 3 банкC 3 5 банкE

Что я получаю банк 11 банкА

1 Ответ

0 голосов
/ 30 апреля 2019

Вы должны использовать% в%:

# 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...