从数据框中选择行

时间:2013-05-29 19:07:11

标签: r

我有一个数据框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 ...)。

有什么建议吗?

2 个答案:

答案 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中的平均值。