gpt4 book ai didi

r - 使用 plyr - R 分块后从一列中获取具有最高值的行

转载 作者:行者123 更新时间:2023-12-02 04:51:31 24 4
gpt4 key购买 nike

假设我有一个如下所示的数据框:

   v1 v2 v3 v4 v5 v6
r1 1 2 2 4 5 9
r2 1 2 2 4 5 10
r3 1 2 2 4 5 7
r4 1 2 2 4 5 12
r5 2 2 2 4 5 9
r6 2 2 2 4 5 10

我想获取 v6 中具有最高值且在 v1 中值为 1 的行。我知道如何获取 v1 = 1 的所有行并选择其中的第一行,感谢 this answer上一个问题:

ddply( df , .variables = "v1" , .fun = function(x) x[1,] )

如何更改函数以便获得 v6 中具有最高值的行?

最佳答案

根据之前的结果,我将使用 [ 使用 logical 比较器在您的第一个条件下进行子集化,然后在您的第二个条件下进行第二个子集化,因为 @sgibb在评论中指出,v6max 值可能不在 v1 == 1 的行中。

#  Subset to those rows where v1 == 1
tmp <- df[ df$v1 == 1 , ]

# Then select those rows where the max value of v6 appears
tmp[ tmp$v6 == max( tmp$v6 ) , ]

如果你想要第一次出现,使用which.max()

关于r - 使用 plyr - R 分块后从一列中获取具有最高值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18764825/

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