首页 > 解决方案 > 查找变量的最大值

问题描述

我想找到一个变量(列)的最大值,然后保留这个值(最大值)和它下面的所有值。除了这些值,我想保留数据框中所有其他变量(列)的相应值。对于其中的所有变量,我想从数据框中排除高于该点的所有值。包括示例数据框 (df) 和预期数据框 (df2) 的脚本,即我想要实现的目标。我将非常感谢一些脚本来做到这一点。

Ba <- c(1,1,1,2,2)
Sr <- c(1,1,1,2,2)
Mn <- c(1,1,2,1,1)
df <- data.frame(Ba, Sr, Mn)

df

#   Ba Sr Mn
# 1  1  1  1
# 2  1  1  1
# 3  1  1  2
# 4  2  2  1
# 5  2  2  1

显示 5 个条目中的 1 到 5 个,共 3 列

这就是我想在 R 中实现的目标:

Ba2 <- c(1,2,2)
Sr2 <- c(1,2,2)
Mn2 <- c(2,1,1)
df2 <- data.frame(Ba2, Sr2, Mn2)

df2

#   Ba2 Sr2 Mn2
# 1   1   1   2
# 2   2   2   1
# 3   2   2   1

显示 3 个条目中的 1 到 3 个,共 3 列

标签: rdataframemax

解决方案


您可以使用每列dfminnrow(df)的序列进行子集化:which.max

df[min(sapply(df, which.max)):nrow(df),]
#  Ba Sr Mn
#3  1  1  2
#4  2  2  1
#5  2  2  1

推荐阅读