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