如何在R数据帧中找到字符串的位置?

为了找到R数据帧中数值的位置,我们使用哪个函数,如果该值是字符串,则将使用相同的函数,但是我们需要适当地传递该值。例如,如果我们有一个名为df的数据框,其中包含一个值,例如tutor,那么我们可以使用命令which(df ==“ tutor”,arr.ind = TRUE)找到教师的位置。

例1

考虑以下数据帧-

> x1<-sample(c("2015","2018","2020"),20,replace=TRUE)
> x2<-sample(c("2015","2018","2020"),20,replace=TRUE)
> x3<-sample(c("2015","2018","2020"),20,replace=TRUE)
> df1<-data.frame(x1,x2,x3)
> df1
输出结果
     x1   x2   x3
1  2018 2020 2018
2  2020 2020 2015
3  2018 2020 2015
4  2018 2015 2020
5  2018 2015 2018
6  2018 2020 2015
7  2015 2018 2020
8  2020 2018 2020
9  2015 2015 2018
10 2015 2015 2020
11 2020 2020 2020
12 2018 2018 2015
13 2015 2018 2015
14 2015 2018 2018
15 2015 2020 2020
16 2015 2020 2015
17 2015 2015 2018
18 2020 2015 2015
19 2020 2015 2015
20 2015 2020 2020

在df1中找到2020的位置-

> which(df1=="2020",arr.ind=TRUE)
输出结果
      row col
 [1,]   2   1
 [2,]   8   1
 [3,]  11   1
 [4,]  18   1
 [5,]  19   1
 [6,]   1   2
 [7,]   2   2
 [8,]   3   2
 [9,]   6   2
[10,]  11   2
[11,]  15   2
[12,]  16   2
[13,]  20   2
[14,]   4   3
[15,]   7   3
[16,]   8   3
[17,]  10   3
[18,]  11   3
[19,]  15   3
[20,]  20   3

例2

> y1<-sample(c("Asia","Africa","Europe"),20,replace=TRUE)
> y2<-sample(c("Asia","Africa","Europe"),20,replace=TRUE)
> df2<-data.frame(y1,y2)
> df2
输出结果
       y1     y2
1  Europe   Asia
2  Europe Africa
3  Africa   Asia
4  Africa Africa
5  Europe Europe
6    Asia   Asia
7  Europe Europe
8  Africa Europe
9  Africa   Asia
10 Europe Africa
11 Europe Africa
12 Africa Europe
13 Europe Africa
14 Europe   Asia
15 Africa Europe
16 Africa   Asia
17 Europe Africa
18 Europe Africa
19   Asia   Asia
20 Africa   Asia

在df2中找到欧洲的位置-

> which(df2=="Europe",arr.ind=TRUE)
输出结果
      row col
 [1,]   1   1
 [2,]   2   1
 [3,]   5   1
 [4,]   7   1
 [5,]  10   1
 [6,]  11   1
 [7,]  13   1
 [8,]  14   1
 [9,]  17   1
[10,]  18   1
[11,]   5   2
[12,]   7   2
[13,]   8   2
[14,]  12   2
[15,]  15   2