gpt4 book ai didi

r - 根据组的第一个值删除一行

转载 作者:行者123 更新时间:2023-12-01 08:01:41 24 4
gpt4 key购买 nike

我有以下数据:

  group health   result
1 a H 7
2 a H 8
3 a N 9
4 b H 10
5 b H 5
6 b H 4
7 c H 3
8 c H 2
9 c N 1

我想保持数据分组,并且仅当每组中的第一个结果小于 7 时才删除整个组。

结果是这样的:

  group health   result
1 a H 7
2 a H 8
3 a N 9
4 b H 10
5 b H 5
6 b H 4

最佳答案

我们可以使用data.table

library(data.table)
setDT(df1)[, if(result[1] >=7 ) .SD, group]

或者使用dplyr

library(dplyr)
df1 %>%
group_by(group) %>%
filter(first(result) >=7)
# group health result
# <chr> <chr> <int>
#1 a H 7
#2 a H 8
#3 a N 9
#4 b H 10
#5 b H 5
#6 b H 4

或者使用 base R

df1[with(df1, as.logical(ave(result, group, FUN = function(x) x[1] >=7))),]

关于r - 根据组的第一个值删除一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38358684/

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