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

时间:2016-02-11 06:45:30

标签: r sorting aggregate

我认为这是一件容易的事,但我无法解决我的问题。

我有一个包含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

如你所见,我还没有真正达到我的目标喷气机。 我也很确定有更好的方法,但我现在卡住了。

1 个答案:

答案 0 :(得分:2)

即使没有DELETE数据集,我们也可以使用action中的top_n

dplyr