根据条件查找 R 数据框中的列名和行名。

要根据条件在 R 数据框中查找列名和行名,我们可以使用row.names和 colnames 函数。我们要查找行名称和列名称的条件可以在这些函数中定义,如下面的示例所示。

示例 1

以下代码段创建了一个示例数据框 -

x1<-rpois(20,1)

x2<-rpois(20,8)

x3<-rpois(20,20)

df1<-data.frame(x1,x2,x3)

df1

创建了以下数据框

  x1 x2 x3

1  1 11 15

2  3  6 15

3  0  9 18

4  2 10 26

5  1  9 17

6  1  7 23

7  0 11 21

8  2 11 23

9  1  6 22

10 2  6 28

11 2  7 22

12 0  8 16

13 1  7 28

14 1  7 25

15 0  6 14

16 0 10 23

17 0 12 16

18 0  8 23

19 2  8 17

20 2  8 21

要在上面创建的数据框中查找哪些行的值为 17,请将以下代码添加到上面的代码段中 -

x1<-rpois(20,1)

x2<-rpois(20,8)

x3<-rpois(20,20)

df1<-data.frame(x1,x2,x3)

row.names(df1[which(df1==17,arr.ind=T)[,1],] )

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] "5" "19"

要在上面创建的数据框中查找哪些列的值为 17,请将以下代码添加到上面的代码段中 -

x1<-rpois(20,1)

x2<-rpois(20,8)

x3<-rpois(20,20)

df1<-data.frame(x1,x2,x3)

colnames(df1)[apply(df1, 2, function(x) any(x==17))]

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] "x3"

示例 2

以下代码段创建了一个示例数据框 -

y1<-sample(1:100,20)

y2<-sample(1:100,20)

y3<-sample(1:100,20)

df2<-data.frame(y1,y2,y3)

df2

创建了以下数据框

   y1 y2 y3

1  75 52 32

2  37  5 46

3  43 31 60

4 100 30 11

5  28 18 79

6  31 80 53

7   8 85 49

8  62 38 56

9  48 82 15

10 97 48 69

11 69 25 40

12 12 92 21

13 77 55 26

14 39 95 63

15 82 61 75

16 98 40 14

17 61 78 22

18 93 63 58

19 10 21 17

20 2 68 83

要在上面创建的数据框中查找哪些行的值为 92,请将以下代码添加到上面的代码段中 -

y1<-sample(1:100,20)

y2<-sample(1:100,20)

y3<-sample(1:100,20)

df2<-data.frame(y1,y2,y3)

row.names(df2[which(df2==92,arr.ind=T)[,1],] )

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] "12"

要在上面创建的数据框中查找哪些列的值为 92,请将以下代码添加到上面的代码段中 -

y1<-sample(1:100,20)

y2<-sample(1:100,20)

y3<-sample(1:100,20)

df2<-data.frame(y1,y2,y3)

colnames(df2)[apply(df2, 2, function(x) any(x==92))]

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] "y2"

以上是 根据条件查找 R 数据框中的列名和行名。 的全部内容, 来源链接: utcz.com/z/353539.html

回到顶部