如何在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的行 −

示例

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+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.