您好我有数据框,我需要删除每列中包含最大值的所有行。 示例
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
有没有快速的方法可以做到这一点?
答案 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))