gpt4 book ai didi

r - 在 Dplyr : Evaluation error 中按组计算行数

转载 作者:行者123 更新时间:2023-12-04 18:11:12 27 4
gpt4 key购买 nike

在使用 group_by 后,我尝试使用 dplyr 计算行数。我有以下数据:

scenario    pertubation    population    
A 1 20
B 1 30
C 1 40
D 1 50
A 2 15
B 2 25

我正在使用以下代码进行 group_by 和 mutate:
test <- all_scenarios %>%
group_by(scenario) %>%
mutate(rank = dense_rank(desc(population)),
exceedance_probability = rank / count(pertubation)) %>%
select(scenario, pertubation, All.ages, rank, exceedance_probability)

但是我不断遇到此错误消息,我不确定它的含义,或者为什么我一直收到它?
Error in mutate_impl(.data, dots) : 
Evaluation error: no applicable method for 'groups' applied to an object of class "c('integer', 'numeric')".

我希望我的输出数据看起来像这样:
scenario    pertubation    population  rank    exceedance_probability  
A 1 20 12 0.06
B 1 30 7 0.035
C 1 40 2 0.01
D 1 50 1 0.005
A 2 15 34 0.17
B 2 25 28 0.14

要计算超出概率,我只需要将排名除以观察次数,但我发现在 group_by 语句后很难在 dplyr 中执行此操作。我是否错误地订购了 dplyr 语句?

最佳答案

我们可以得到count分别并加入原始数据集

all_scenarios %>% 
count(pertubation) %>%
left_join(all_scenarios, ., by = 'pertubation') %>%
group_by(scenario) %>%
mutate(rank = dense_rank(desc(population)), exceedance_probability = rank /n)

或者不使用 count ,我们可以再做一次 group_by并获得 n()
all_scenarios %>%
group_by(scenario) %>%
mutate(rank = dense_rank(desc(population))) %>%
group_by(pertubation) %>%
mutate( exceedance_probability = rank /n())

关于r - 在 Dplyr : Evaluation error 中按组计算行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987862/

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