如何在R数据框中查找与条件匹配的列索引?


要查找与条件匹配的列索引,可以使用apply函数。此条件可以是对列值大于某值、小于某值、等于某值,或对数值变量使用任何其他条件。例如,如果我们想要检查数据df的哪列包含值大于5的行,则可以使用命令apply(df,1, function(x) which(x>5))。

考虑以下数据框架−

 实时演示

x1<-rnorm(20,2,0.05)
x2<-rnorm(20,2,0.65)
df1<-data.frame(x1,x2)
df1

输出

      x1      x2
1  2.083832  3.238437
2  1.999989  2.409343
3  1.908010  2.088710
4  1.914835  2.421812
5  2.080797  1.705331
6  1.977896  1.337907
7  1.987243  2.687881
8  2.002822  2.850734
9  1.932333  2.470400
10 1.955817  1.652495
11 2.085809  1.490701
12 1.986614  1.733392
13 1.975024  1.742006
14 1.983986  2.441801
15 1.991714  2.450637
16 1.947738  1.105244
17 2.052789  2.020752
18 1.989781  1.438219
19 2.023067  1.615221
20 2.086341  3.046352

检查df1每一行的列值是否大于1.5−

apply(df1,1, function(x) which(x>1.5))

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

更新于: 06-Feb-2021

920条浏览

开启你的 职业生涯

通过完成课程获得认证

开始吧
广告