gpt4 book ai didi

r - 过滤大于 Dplyr R 中数字的比例

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

假设我有以下数据,

library(dplyr)
data(mtcars)
mtcars = tbl_dt(mtcars)

我正在使用以下命令,

mtcars %>%
group_by(am, gear) %>%
summarise (n = n()) %>%
mutate(freq = (n / sum(n)) * 100)

我得到以下输出,

am gear  n     freq
0 3 15 79
0 4 4 21
1 4 8 62
1 5 5 38

现在我想过滤与小于频率 25 的条目相对应的所有条目。例如,如果我给出 25 作为值,我想删除与比例小于 25 相对应的所有 4 个条目。输出应包含,28条代替32条。是否可以过滤掉所有与比例对应的条目?

最佳答案

如果您使用 mutate 而不是 summarise 来计算每个组中的行数,则可以在单个链中执行此操作。

min.freq = 0.25

mtcars %>%
group_by(am, gear) %>%
mutate(n = n()) %>%
group_by(am) %>%
filter(n/n() > min.freq) %>% select(-n)
    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
...
26 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
27 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
28 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2

关于r - 过滤大于 Dplyr R 中数字的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37597622/

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