寻找变量的最大值
Finding the maximum value of a variable
我想找到一个变量(列)的最大值,然后保留这个值(最大值)和它下面的所有值。除了这些值,我还想保留数据框中所有其他变量(列)的相应值。对于其中的所有变量,我想从数据框中排除高于这一点的所有值。其中包括示例数据框 (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
显示第 1 到 5 个条目,共 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
显示第 1 到 3 个条目,共 3 个条目,共 3 列
您可以使用从 min
到 nrow(df)
的每列 which.max
的序列对 df
进行子集化:
df[min(sapply(df, which.max)):nrow(df),]
# Ba Sr Mn
#3 1 1 2
#4 2 2 1
#5 2 2 1
这个有用吗:
df[max(apply(df, 1, which.max)):nrow(df),]
Ba Sr Mn
3 1 1 2
4 2 2 1
5 2 2 1
使用cummax
library(dplyr)
library(purrr)
df %>%
filter(cummax(invoke(pmax, cur_data())) == max(cur_data()))
Ba Sr Mn
1 1 1 2
2 2 2 1
3 2 2 1
我想找到一个变量(列)的最大值,然后保留这个值(最大值)和它下面的所有值。除了这些值,我还想保留数据框中所有其他变量(列)的相应值。对于其中的所有变量,我想从数据框中排除高于这一点的所有值。其中包括示例数据框 (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
显示第 1 到 5 个条目,共 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
显示第 1 到 3 个条目,共 3 个条目,共 3 列
您可以使用从 min
到 nrow(df)
的每列 which.max
的序列对 df
进行子集化:
df[min(sapply(df, which.max)):nrow(df),]
# Ba Sr Mn
#3 1 1 2
#4 2 2 1
#5 2 2 1
这个有用吗:
df[max(apply(df, 1, which.max)):nrow(df),]
Ba Sr Mn
3 1 1 2
4 2 2 1
5 2 2 1
使用cummax
library(dplyr)
library(purrr)
df %>%
filter(cummax(invoke(pmax, cur_data())) == max(cur_data()))
Ba Sr Mn
1 1 1 2
2 2 2 1
3 2 2 1