【问题标题】:Excluding the lowest values from each row排除每行的最小值
【发布时间】:2017-03-07 13:37:09
【问题描述】:

我的数据集中的每一行都有 8 个案例,我需要找到其中 7 个案例的平均值,不包括最低值。

因此,例如,我的第一行如下所示:

15 13 8 22 20 12 8 8 

因此,最低值将是 8,然后其余 7 个案例的平均值将是 14。显然,我不想手动执行此操作,所以有一个函数可以让我直接在吗?

我使用apply(data,1,min) 函数来查找每一行的最小值。有没有办法让 R 给我每行的平均值,同时从这个平均值中排除相应的最小值?

谢谢!

【问题讨论】:

    标签: r average minimum


    【解决方案1】:

    我们可以用max.col找到最小值的索引,cbind用行索引,将这些元素分配给NA并得到rowMeans

    m1[cbind(1:nrow(m1), max.col(-m1, "first"))] <- NA
    rowMeans(m1, na.rm = TRUE)
    #[1] 14.00000 14.28571
    

    数据

    m1 <- rbind(c(15, 13, 8, 22, 20, 12, 8, 8),  c(15, 13, 9, 23, 20, 12, 4, 8))
    

    【讨论】:

      猜你喜欢
      • 2018-11-26
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2018-10-02
      • 2013-03-22
      • 2014-07-23
      • 1970-01-01
      相关资源
      最近更新 更多