如何在 R 資料框中查詢字元值的行和列索引?


要查詢 R 資料框中數值的行列索引,我們可以使用 which 函式;如果該值是字元型,則使用相同的函式,但需要適當地傳遞該值。例如,如果我們有一個名為 df 的資料框,其中包含一個名為 Data 的值,則可以透過使用 which(df=="Data",arr.ind=TRUE) 命令來查詢 Data 的行列索引。

示例1

考慮以下資料框 -

線上演示

> x1<-sample(c("Male","Female"),20,replace=TRUE)
> x2<-rpois(20,5)
> df1<-data.frame(x1,x2)
> df1

輸出

    x1    x2
1 Female  5
2 Female  5
3 Female  6
4 Female  6
5   Male  6
6 Female  6
7 Female  7
8   Male  0
9   Male  4
10  Male  3
11  Male  8
12 Female 6
13 Female 5
14  Male  5
15  Male  4
16  Male  7
17 Female 4
18  Male  4
19  Male  3
20  Male  5

查詢 df1 中 Male 的行列索引 -

> which(df1=="Male",arr.ind=TRUE)

輸出

     row col
[1,]  5   1
[2,]  8   1
[3,]  9   1
[4,]  10  1
[5,]  11  1
[6,]  14  1
[7,]  15  1
[8,]  16  1
[9,]  18  1
[10,] 19  1
[11,] 20  1

示例2

線上演示

> y1<-sample(c("India","UK","USA"),20,replace=TRUE)
> y2<-sample(c("Egypt","UK","Sudan"),20,replace=TRUE)
> df2<-data.frame(y1,y2)
> df2

輸出

   y1     y2
1  UK    Sudan
2  USA   Egypt
3  India UK
4  UK    Egypt
5  UK    Sudan
6  India UK
7  USA   Egypt
8  UK    UK
9  UK    Sudan
10 USA   Egypt
11 UK    Egypt
12 India Egypt
13 India Egypt
14 India Egypt
15 UK    UK
16 India Sudan
17 UK    Sudan
18 UK    UK
19 UK    Sudan
20 India Sudan

查詢 df2 中 UK 的行列索引 -

> which(df2=="UK",arr.ind=TRUE)

輸出

     row col
[1,]  1   1
[2,]  4   1
[3,]  5   1
[4,]  8   1
[5,]  9   1
[6,]  11  1
[7,]  15  1
[8,]  17  1
[9,]  18  1
[10,] 19  1
[11,] 3   2
[12,] 6   2
[13,] 8   2
[14,] 15  2
[15,] 18  2

示例3

線上演示

> z1<-sample(c("Milk","Curd","Pastry"),20,replace=TRUE)
> z2<-sample(c("Milk","Tea"),20,replace=TRUE)
> df3<-data.frame(z1,z2)
> df3

輸出

    z1    z2
1 Pastry  Tea
2 Pastry  Milk
3 Milk    Milk
4 Pastry  Tea
5 Curd    Tea
6 Pastry  Tea
7 Curd    Tea
8 Curd    Tea
9 Milk    Tea
10 Milk   Tea
11 Pastry Milk
12 Pastry Tea
13 Curd   Milk
14 Milk   Tea
15 Milk   Milk
16 Curd   Tea
17 Milk   Tea
18 Curd   Tea
19 Curd   Milk
20 Milk   Milk

查詢 df3 中 Milk 的行列索引 -

> which(df3=="Milk",arr.ind=TRUE)

輸出

     row col
[1,]  3   1
[2,]  9   1
[3,]  10  1
[4,]  14  1
[5,]  15  1
[6,]  17  1
[7,]  20  1
[8,]  2   2
[9,]  3   2
[10,] 11  2
[11,] 13  2
[12,] 15  2
[13,] 19  2
[14,] 20  2

更新於: 2021年3月4日

4K+ 閱讀量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.