gpt4 book ai didi

R group by key获取多列的最大值

转载 作者:行者123 更新时间:2023-12-04 10:15:41 25 4
gpt4 key购买 nike

我想做这样的事情:

How to make a unique in R by column A and keep the row with maximum value in column B

除了我的 data.table 有一个键列和多个值列。所以说我有以下内容:

   a b c
1: 1 1 1
2: 1 2 1
3: 1 2 2
4: 2 1 1
5: 2 2 5
6: 2 3 3
7: 3 1 4
8: 3 2 1

如果键是 a 列,我希望每个唯一的 a 返回具有最大 b 的行,如果有多个唯一的最大值 b,获取具有最大值 c 的最大值,依此类推。所以结果应该是:

   a b c
1: 1 2 2
2: 2 3 3
3: 3 2 1

我还希望对任意数量的列执行此操作。因此,如果我的 data.table 有 20 列,我希望按从左到右的顺序应用 max 函数。

最佳答案

这是一个建议的 data.table 解决方案。您可能需要考虑使用 data.table::frankv,如下所示:

DT[, .SD[frankv(.SD, ties.method="first")[.N],], by=a]

frankv 返回顺序。然后 [.N] 将占据最大的排名。然后 .SD[ 子集到该特定行。

如果您的较大数据集失败,请告诉我。

关于R group by key获取多列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49159992/

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