从 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'
谢谢
尝试使用 reshape
和 dplyr
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)]
我有如下数据框:
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'
谢谢
尝试使用 reshape
和 dplyr
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)]