gpt4 book ai didi

r - 查找相同值的每个子集的最大值

转载 作者:行者123 更新时间:2023-12-04 10:50:55 24 4
gpt4 key购买 nike

在数据框中:

 > df
Version.ID Relevant.product Proportion
1000 OS 0.05095541
1000 C 0.75159236
1000 R 0.19745223
1000 Other 0.00000000
1000 C 0.75159236
1000 C 0.75159236
1000 C 0.75159236
1000 C 0.75159236
2000 O 1.00000000
3000 En 0.93498526
3000 En 0.93498526
3000 En 0.93498526
3000 R 0.06501474
3000 En 0.93498526
3000 En 0.93498526
3000 Other 0.00000000
3000 En 0.93498526

我想获取每个 Version.ID 中占比最大的产品名称:

 Version.ID Relevant.product 
1000 C
2000 O
3000 En

谢谢

最佳答案

试试 data.table

library(data.table)
setDT(df)[, Relevant.product[which.max(Proportion)], by = Version.ID]

# Version.ID V1
# 1: 1000 C
# 2: 2000 O
# 3: 3000 En

如果您只想要与 max(Proportion) 对应的第一个“Relevant.product”,上述解决方案非常好。如果您有兴趣将它们全部退回,可以使用以下方法:

require(data.table) ## 1.9.2
idx = setDT(df)[, .I[Proportion == max(Proportion)], by=Version.ID]$V1
ans = unique(df[idx], by=c("Version.ID", "Relevant.product"))

关于r - 查找相同值的每个子集的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23322217/

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