这是我的数据框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))
谁能告诉我需要纠正什么?
答案 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)