我需要一些幫助來找到每列具有最大值的行號
Data = data.frame(
V1 = c(0.1, 0.2, 0.4, 0.7, 0.9),
v2 = c(0.1, 0.12, 0.41, 0.72, 0.91),
v3 = c(0.03, 0.13, 0.92, 0.50, 0.90))
期望結果:(最大值時間)
V1 V2 V3
1 5 5 3
我試過這個,但沒有成功:
lapply(Data, function(x) (which(max(x))))
uj5u.com熱心網友回復:
我會使用max.col和t來自基礎 R:
max.col(t(Data))
輸出:
[1] 5 5 3
這樣做的步驟:
首先轉置資料:
> t(Data) [,1] [,2] [,3] [,4] [,5] V1 0.10 0.20 0.40 0.70 0.90 v2 0.10 0.12 0.41 0.72 0.91 v3 0.03 0.13 0.92 0.50 0.90然后獲取每行最大值的列:
> max.col(t(Data)) [1] 5 5 3 >
或者apply:
apply(Data, 1, which.max)
uj5u.com熱心網友回復:
簡單地使用 dplyr::across
library(dplyr)
Data %>%
summarise(across(everything(), ~which.max(.x)))
V1 v2 v3
1 5 5 3
或者使用sapply,
sapply(Data, function(x) which.max(x))
V1 v2 v3
5 5 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353839.html
下一篇:如何將寬資料幀轉換為長資料幀
