从 R 的数据框中的不同列获取最大值

Getting the Maximum values from the different columns in a dataframe of R

我有如下数据框:

H   A   B   C   D
------------------
X   1   10  2   11
Y   2   15  8   14
Z   NA  23  NA  16
W   5   67  5   NA
X   4   1   6   2
Y   1   3   2   9
Z   2   NA  9   17

你能告诉我 R 命令,它为我提供 A 的最大值、B 的最大值、C 的最大值和 D 的最大值的相应 H 值,并将数据存储在向量中。

A​​ 列的最大值为 5,B 列的最大值为 67,C 列的最大值为 9,D 列的最大值为 17。

我的新矢量应该有 H 引用,如 'W'、'W'、'Z'、'Z'

谢谢

尝试使用 reshapedplyr

DF=melt(df)
DF=DF%>%group_by(variable)%>%slice(which.max(value))
DF
# A tibble: 4 x 3
# Groups:   variable [4]
      H variable value
  <chr>   <fctr> <int>
1     W        A     5
2     W        B    67
3     Z        C     9
4     Z        D    17

如果你需要vector,只需要DF$H

[1] "W" "W" "Z" "Z"

这是一个使用base R

的选项
m1 <- t(df1[-1])
df1[,1][max.col(replace(m1, is.na(m1), 0), "first")]
#[1] "W" "W" "Z" "Z"
data$H[sapply(data[,-1],which.max)]