我的数据集中的每一行都有8个案例,我需要找到其中7个的平均值,不包括最低值。
因此,例如,我的第一行如下:
15 13 8 22 20 12 8 8
所以,最低值将是8,那么剩余的7个案例的平均值将是14.显然,我不想手动这样做,所以有一个功能可以让我这样做直接在R?
我使用apply(data,1,min)
函数查找每行的最低值。有没有办法让R给我每行的平均值,同时排除这个平均值的相应最小值?
谢谢!
答案 0 :(得分:2)
我们可以找到带有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))