簡體   English   中英

從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值,並將數據存儲在向量中。

col A的最大值為5,col B的最大值為67,col C的最大值為9,D的最大值為17。

我的新向量應具有H引用,分別為“ W”,“ W”,“ Z”,“ Z”

謝謝

data$H[sapply(data[,-1],which.max)]

這是使用base R的選項

m1 <- t(df1[-1])
df1[,1][max.col(replace(m1, is.na(m1), 0), "first")]
#[1] "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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM