如何在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
广告