如何在R中使用dplyr从数据框中删除观察列表?

时间:2020-02-07 19:47:58

标签: r dplyr tidyverse

这是我的数据框x

ID       Name      Initials     AGE 
123      Mike        NA          18
124      John        NA          20
125      Lily        NA          21
126      Jasper      NA          24
127      Toby        NA          27 
128      Will        NA          19 
129      Oscar       NA          32

我还有一个要从数据框x num [1:3]中删除的ID列表,它是以下内容:y

>print(y)
[1] 124 125 129

我的目标是从数据框x中删除y中的所有ID

这是我想要的输出

ID       Name      Initials     AGE 
123      Mike        NA          18
126      Jasper      NA          24
127      Toby        NA          27 
128      Will        NA          19 

我正在使用dplyr软件包并尝试使用此软件包,但是它不起作用,

FinalData <- x %>% 
             select(everything()) %>%
             filter(ID != c(y))

谁能告诉我需要纠正什么?

1 个答案:

答案 0 :(得分:2)

我们可以使用%in%并在'y'的长度大于1时取反!。不需要select步骤,因为它选择了{ {1}}

everything()

或者另一个选择是library(dplyr) x %>% filter(!ID %in% y) # ID Name Initials AGE #1 123 Mike NA 18 #2 126 Jasper NA 24 #3 127 Toby NA 27 #4 128 Will NA 19

anti_join

x %>% anti_join(tibble(ID = y)) 中,可以使用base R

subset

数据

subset(x, !ID %in% y)