gpt4 book ai didi

r - 使用 R 中的条件对数据框中的特定组进行排序

转载 作者:行者123 更新时间:2023-12-02 09:07:54 25 4
gpt4 key购买 nike

我需要帮助才能在组内对数据框进行子集化,这是数据框:

Group_name  Event   colomn1 colomn2 colomn3 colomn4
Group1 1 1 1 1 0
Group1 2 2 2 4 2
Group1 3 2 2 4 2
Group2 1 6 6 6 0
Group3 1 2 2 2 0
Group3 2 2 2 2 0
Group4 1 2 2 5 3
Group4 2 2 2 2 0

我想保留 colomn4 值 = 0 的组并删除其他组:

所以我应该得到:

Group_name  Event   colomn1 colomn2 colomn3 colomn4
Group2 1 6 6 6 0
Group3 1 2 2 2 0
Group3 2 2 2 2 0

你有想法用 R 来做这件事吗?

最佳答案

使用dplyr,您可以:

df %>%
group_by(Group_name) %>%
filter(all(colomn4 == 0))

Group_name Event colomn1 colomn2 colomn3 colomn4
<chr> <int> <int> <int> <int> <int>
1 Group2 1 6 6 6 0
2 Group3 1 2 2 2 0
3 Group3 2 2 2 2 0

或者与base R相同:

df[with(df, ave(colomn4, Group_name, FUN = function(x) all(x == 0))) == 1, ]

Group_name Event colomn1 colomn2 colomn3 colomn4
4 Group2 1 6 6 6 0
5 Group3 1 2 2 2 0
6 Group3 2 2 2 2 0

或者:

df[as.logical(with(df, ave(colomn4, Group_name, FUN = function(x) all(x == 0)))), ]

或者(由@Ronak Shah提议):

df[with(df, ave(colomn4 == 0, Group_name, FUN = all)), ]

关于r - 使用 R 中的条件对数据框中的特定组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828605/

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