R数据框从所有列中删除具有最大值的行

时间:2017-03-28 20:07:57

标签: r

您好我有数据框,我需要删除每列中包含最大值的所有行。 示例

   A B C
1  2 3 5
2  4 1 1
3  1 4 3
4  2 1 1

所以输出是:

   A B C
4  2 1 1

有没有快速的方法可以做到这一点?

2 个答案:

答案 0 :(得分:2)

我们可以使用%in%

执行此操作
df1[!seq_len(nrow(df1)) %in% sapply(df1, which.max),]
#  A B C
#4 2 1 1

如果每行都有最大值的关联,那么执行

df1[!Reduce(`|`, lapply(df1, function(x) x== max(x))),]

答案 1 :(得分:1)

df[-sapply(df, which.max),]
#  A B C
#4 2 1 1

数据

df = structure(list(A = c(2L, 4L, 1L, 2L), B = c(3L, 1L, 4L, 1L), 
    C = c(5L, 1L, 3L, 1L)), .Names = c("A", "B", "C"),
    class = "data.frame", row.names = c(NA,-4L))