gpt4 book ai didi

r - 如何获得数据框中每个组的 10 个最高值?

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

我假设这是一件容易的事情,但我无法解决我的问题。

我有一个包含 9 列的数据框,我想为第一列中给出的每个组排序第 4 列 (LumenLenght) 的最高 3 个值。

我希望能够:
a) 找到为每个 SampleID(第一列)分隔的第 4 列具有最高值的 10 行
b) 平均每个 SampleID 的 10 个值

data frame

我当前的代码 a) 首先根据 SampleID 和 LumenLength 对值进行排序,b) 将每个 SampleID 的最高、第二高和第三高的 LumenLength 值分开。

sorted.v= arrange(sorted.v, desc(SampleId), LumenLength)
maxlength1 = aggregate(sorted.v$LumenLength,by = list(sorted.v$SampleId), FUN = tail, n = 1)#highest value
maxlength2 = aggregate(sorted.v$LumenLength,by = list(sorted.v$SampleId), FUN = tail, n = 2)#second highest value
maxlength3 = aggregate(sorted.v$LumenLength,by = list(sorted.v$SampleId), FUN = tail, n = 3)#3. highest value

正如你所看到的,我还没有真正达到我的目标。
我也很确定有更好的方法来做到这一点,但我现在卡住了。

最佳答案

我们可以使用 top_n来自 dplyr即使没有 arrange数据集。

sorted.v %>%
group_by(SampleId) %>%
top_n(10, LumenLength) %>%
summmarise(MeanLumenArea = mean(LumenLength))

关于r - 如何获得数据框中每个组的 10 个最高值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35332545/

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