gpt4 book ai didi

r - 提取满足条件的第一行、第二行和最后一行

转载 作者:行者123 更新时间:2023-12-04 09:33:56 28 4
gpt4 key购买 nike

我想知道如何提取符合条件的最后一行。我已经在下一个链接 How do I select the first row in an R data frame that meets certain criteria? 中看到了通过函数“复制”获得第一个的解决方案。

但是,是否有可能获得满足条件的第二行或最后一行?

我想为每个 Class 做一个循环(这里我只放了两个)并选择满足条件的第一行,第二行和最后一行 Weight >= 10。并且如果没有符合条件的行得到一个NA。

最后,我想将三个值(第一行、第二行和最后一行)存储在包含每个类的值的列表中。

   Class Weight
1 A 20
2 A 15
3 B 10
4 B 23
5 A 11
6 B 12
7 B 11
8 A 25
9 A 7
10 B 3

最佳答案

数据表可以帮助解决这个问题。这是对 David 评论的编辑,将其移至答案中,因为他的方法是执行此操作的正确方法。

library(data.table)
DT <- as.data.table(db)
DT[Weight >= 10][, .SD[c(1, 2, .N)], by = Class]

作为更快的替代品也来自 David 看看

 indx <- DT[Weight >= 10][, .I[c(1, 2, .N)], by = Class]$V1 ; DT[indx]

它使用 .I 创建所需的索引,然后根据这些行创建子集 DT。

关于r - 提取满足条件的第一行、第二行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30375004/

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