1 1 car #> 2 1 boat #> 3 2 bike #>-6ren">
gpt4 book ai didi

r - 选择 R 中第一个值等于 "x"的组

转载 作者:行者123 更新时间:2023-12-05 00:50:53 24 4
gpt4 key购买 nike

我想对 R 中的分组数据集进行条件切片。

df <- data.frame(grp = c(1, 1, 2, 2, 3, 3),
vehicle = c("car", "boat", "bike", "car", "plane", "bike"))

#> grp vehicle
#> 1 1 car
#> 2 1 boat
#> 3 2 bike
#> 4 2 car
#> 5 3 plane
#> 6 3 bike

我想按 grp 分组,并且只保留第一行等于 car 的组。这将是解决方案。

#>   grp  vehicle
#> 1 1 car
#> 2 1 boat

我该怎么做?我认为这可能是一个更好的版本。

library(dplyr)
df %>% group_by(grp) %>% filter(any(slice_head(vehicle == "car")))

#, Error in `filter()`:
#, ! Problem while computing `..1 =
...

最佳答案

也可以在没有分组的情况下完成,即使用 duplicated 来查找“grp”的第一次出现并检查“vehicle”值是否为“car”并使用它来创建逻辑用'grp'

library(dplyr)
df %>%
filter(grp %in% grp[!duplicated(grp) & vehicle == "car"])
grp vehicle
1 1 car
2 1 boat

关于r - 选择 R 中第一个值等于 "x"的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73787654/

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