gpt4 book ai didi

r - 在R中找到最大值的索引

转载 作者:行者123 更新时间:2023-12-03 12:31:01 30 4
gpt4 key购买 nike

我有以下名为surge的数据框:

MeshID    StormID Rate Surge Wind
1 1412 1.0000E-01 0.01 0.0
2 1412 1.0000E-01 0.03 0.0
3 1412 1.0000E-01 0.09 0.0
4 1412 1.0000E-01 0.12 0.0
5 1412 1.0000E-01 0.02 0.0
6 1412 1.0000E-01 0.02 0.0
7 1412 1.0000E-01 0.07 0.0
1 1413 1.0000E-01 0.06 0.0
2 1413 1.0000E-01 0.02 0.0
3 1413 1.0000E-01 0.05 0.0

我使用以下代码来查找每次 Storm 的浪涌最大值:
MaxSurge <- data.frame(tapply(surge[,4], surge[,2], max))

它返回:
1412 0.12
1413 0.06

很棒,除了我还希望它在浪涌最大的点包括 MeshID值。我知道我可能可以使用 which.max,但是我不太清楚如何将其付诸实践。我对R编程非常陌生。

最佳答案

如果您最多有2个data.points,那么which.max将仅引用第一个。一个更完整的解决方案将涉及rank:

# data with a tie for max  
surge <- data.frame(MeshID=c(1:7,1:4),StormID=c(rep(1412,7),
rep(1413,4)),Surge=c(0.01,0.03,0.09,0.12,0.02,0.02,0.07,0.06,0.02,0.05,0.06))

# compute ranks
surge$rank <- ave(-surge$Surge,surge$StormID,FUN=function(x) rank(x,ties.method="min"))
# subset on the rank
subset(surge,rank==1)
MeshID StormID Surge rank
4 4 1412 0.12 1
8 1 1413 0.06 1
11 4 1413 0.06 1

关于r - 在R中找到最大值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707368/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com