如何在R中根據條件行值分割資料框?


資料框的分割主要用於比較資料框的不同部分,但這種分割基於某些條件,這些條件也可以是行值。例如,如果我們有一個數據框 df,其中一列表示分類資料,那麼可以使用子集函式根據類別進行分割,如下面的示例所示。

示例1

考慮以下資料框

線上演示

> Country<-rep(c("India","China","Russia","Sudan"),5)
> Ratings<-sample(1:5,20,replace=TRUE)
> df1<-data.frame(Country,Ratings)
> df1

輸出

 Country Ratings
1 India   1
2 China   2
3 Russia  5
4 Sudan   3
5 India   5
6 China   5
7 Russia  5
8 Sudan   5
9 India   2
10 China  1
11 Russia 5
12 Sudan  4
13 India  3
14 China  1
15 Russia 1
16 Sudan  2
17 India  3
18 China  4
19 Russia 5
20 Sudan  2

分割 df1 以獲得組(印度-中國、俄羅斯和蘇丹)

示例

> C1<-subset(df1,Country %in% c("India","China"))
> C1

輸出

  Country Ratings
1 India    1
2 China    2
5 India    5
6 China    5
9 India    2
10 China   1
13 India   3
14 China   1
17 India   3
18 China   4

示例

> C2<-subset(df1,Country %in% c("Russia"))
> C2

輸出

  Country Ratings
3 Russia    5
7 Russia    5
11 Russia   5
15 Russia   1
19 Russia   5

示例

> C3<-subset(df1,Country %in% c("Sudan"))
> C3

輸出

 Country Ratings
4 Sudan    3
8 Sudan    5
12 Sudan   4
16 Sudan   2
20 Sudan   2

示例2

考慮以下資料框

線上演示

> Season<-sample(c("Summer","Spring","Winter"),20,replace=TRUE)
> Rain<-sample(c("Yes","No"),20,replace=TRUE)
> df2<-data.frame(Season,Rain)
> df2

輸出

  Season Rain
1 Spring  Yes
2 Winter  Yes
3 Spring  Yes
4 Spring   No
5 Winter   No
6 Summer   No
7 Summer   No
8 Winter  Yes
9 Winter  Yes
10 Winter Yes
11 Summer Yes
12 Summer Yes
13 Summer Yes
14 Summer  No
15 Winter  No
16 Spring  No
17 Summer Yes
18 Spring Yes
19 Winter  No
20 Winter  No

分別分割 df2 以獲得冬季、夏季和春季

示例

> S1<-subset(df2,Season %in% c("Winter"))
> S1

輸出

  Season Rain
2 Winter  Yes
5 Winter   No
8 Winter  Yes
9 Winter  Yes
10 Winter Yes
15 Winter  No
19 Winter  No
20 Winter  No

示例

> S2<-subset(df2,Season %in% c("Summer"))
> S2

輸出

  Season  Rain
6 Summer   No
7 Summer   No
11 Summer Yes
12 Summer Yes
13 Summer Yes
14 Summer  No
17 Summer Yes

示例

> S3<-subset(df2,Season %in% c("Spring"))
> S3

輸出

  Season  Rain
1 Spring  Yes
3 Spring  Yes
4 Spring   No
16 Spring  No
18 Spring Yes

更新於: 2020-11-23

3K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.