如何在R中基于特定列的组值删除数据框的行?


如果我们在R数据框中有一个分组列,并且我们认为其中一个组值对我们的分析没有用,那么我们可能希望删除包含该值的所有行,然后继续进行分析。也可能某个值重复出现,我们希望去除它。在这种情况下,我们可以使用否定和单方括号进行数据框的子集选择。

示例

 在线演示

set.seed(1212)
x<-sample(LETTERS[1:3],20,replace=TRUE)
y<-rpois(20,5)
df<-data.frame(x,y)
df

输出

   x y
1  A 6
2  A 3
3  C 4
4  B 4
5  B 8
6  A 5
7  A 9
8  A 6
9  C 5
10 A 7
11 B 3
12 C 4
13 A 4
14 B 7
15 B 2
16 B 5
17 A 5
18 A 5
19 C 7
20 A 5

删除x列中包含A的行 −

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

df[!df$x=='A',]

输出

   x y
1  B 7
4  B 4
5  C 7
6  B 2
8  C 5
10 B 7
12 C 3
13 C 6
14 C 5
16 C 4
17 B 5
19 B 7

删除x列中包含B的行 −

示例

df[!df$x=='B',]

输出

   x y
2  A 3
3  A 4
5  C 7
7  A 5
8  C 5
9  A 5
11 A 5
12 C 3
13 C 6
14 C 5
15 A 4
16 C 4
18 A 2
20 A 11

删除x列中包含C的行 −

示例

df[!df$x=='C',]

输出

   x y
1  B 7
2  A 3
3  A 4
4  B 4
6  B 2
7  A 5
9  A 5
10 B 7
11 A 5
15 A 4
17 B 5
18 A 2
19 B 7
20 A 11

删除y列中包含3的行 −

示例

df[!df$y==3,]

输出

   x y
1  B 7
3  A 4
4  B 4
5  C 7
6  B 2
7  A 5
8  C 5
9  A 5
10 B 7
11 A 5
13 C 6
14 C 5
15 A 4
16 C 4
17 B 5
18 A 2
19 B 7
20 A 11

删除y列中包含7的行 −

示例

df[!df$y==7,]

输出

   x y
2  A 3
3  A 4
4  B 4
6  B 2
7  A 5
8  C 5
9  A 5
11 A 5
12 C 3
13 C 6
14 C 5
15 A 4
16 C 4
17 B 5
18 A 2
20 A 11

删除y列中包含5的行 −

示例

df[!df$y==5,]

输出

   x y
1  B 7
2  A 3
3  A 4
4  B 4
5  C 7
6  B 2
10 B 7
12 C 3
13 C 6
15 A 4
16 C 4
18 A 2
19 B 7
20 A 11

更新于:2020年10月19日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告