我有一个数据框df
,如下所示:
var1 var2 var3
0 20 0
0 0 0
10 0 10
0 0 0
...
假设我想返回值满足某些约束的索引:说任何高于该列平均值的值:所以在上面的例子中,它应该返回 第1,2,3行,但不是4。
我试过了:
which( df > mean(df), arr.ind=TRUE)
但是,这将返回一个展平的数组索引(3,5 ...)。
有什么建议吗?
答案 0 :(得分:1)
对数组索引使用arr.ind = TRUE
df<-c(1,2,3,4,3,4,3,5,6,4)
which(df>mean(df), arr.ind=TRUE)
答案 1 :(得分:1)
假设我正确理解了这个问题:
idx <- (1:nrow(df))[apply(df, 1, function(row) any(row > mean(df)))]
这将为您提供数字行索引,其中每行中的某些值高于data.frame
中的平均值。