Удалить строки из фрейма данных, где строки совпадают из списка - PullRequest
0 голосов
/ 10 сентября 2018

Удалить строки из фрейма данных, где значение соответствует списку> У меня есть список аккаунтов следующим образом:

ANrule4 <- 
Group_Account
2911
2944
2949
1415
1695
1761
1912
2570

но я хочу удалить любую из учетных записей, перечисленных в следующем списке:

2911
2946
2945
2944
2949

Я использую следующий код:

ANrules4ex <- ANrule4%>%
              filter(!(Group_Account==2946 | Group_Account==2945 | Group_Account==2944 | Group_Account==2942 | Group_Account==2941 |   Group_Account==2912 | Group_Account==2911 | Group_Account==2910 ))

это работает нормально, но на самом деле мой список очень длинный и динамичный, я хочу сохранить список исключений в одном списке и хочу объединить эти два, сохраняя все учетные записи в списке исключений, но не знаю, как это сделать. Может ли кто-нибудь помочь мне с этим

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Вы можете использовать anti_join из пакета dplyr.

ANrule4 <-
  data.frame(Group_Account = c(2911, 2944, 2949, 1415, 1695, 1761, 1912, 2570))

listremove <-
  data.frame(Group_Account = c(2911, 2946, 2945, 2944, 2949))

ANrule4 %>% anti_join(listremove, by = "Group_Account")

  Group_Account
1          1415
2          1695
3          1761
4          1912
5          2570
0 голосов
/ 10 сентября 2018

Попробуйте это: df - это ваш data.frame, а data - это вектор, который вы хотите сравнить.

df[!(df$Group_Account %in% data),]
...