gpt4 book ai didi

r - R 中的累积百分比

转载 作者:行者123 更新时间:2023-12-03 23:30:03 30 4
gpt4 key购买 nike

我有以下数据框

d2
# A tibble: 10 x 2
ID Count
<int> <dbl>
1 1
2 1
3 1
4 1
5 1
6 2
7 2
8 2
9 3
10 3

其中说明每个人(ID)有多少计数。

我想计算每个计数的累积百分比:1 - 50%,最多 2:80%,最多 3:100%。
我试过
> d2 %>% mutate(cum = cumsum(Count)/sum(Count))
# A tibble: 10 x 3
ID Count cum
<int> <dbl> <dbl>
1 1 0.05882353
2 1 0.11764706
3 1 0.17647059
4 1 0.23529412
5 1 0.29411765
6 2 0.41176471
7 2 0.52941176
8 2 0.64705882
9 3 0.82352941
10 3 1.00000000

但这个结果显然是不正确的,因为我预计 1 的计数将对应于 50% 而不是 29.4%。

这里有什么问题?我如何得到正确答案?

最佳答案

我们得到了 count 'Count',通过取 'n' 的累积和来创建 'Cum' 并将其除以 sum 'n',然后 right_join用原始数据

d2 %>% 
count(Count) %>%
mutate(Cum = cumsum(n)/sum(n)) %>%
select(-n) %>%
right_join(d2) %>%
select(names(d2), everything())
# A tibble: 10 x 3
# ID Count Cum
# <int> <int> <dbl>
# 1 1 1 0.500
# 2 2 1 0.500
# 3 3 1 0.500
# 4 4 1 0.500
# 5 5 1 0.500
# 6 6 2 0.800
# 7 7 2 0.800
# 8 8 2 0.800
# 9 9 3 1.00
#10 10 3 1.00

如果我们需要@LAP 提到的输出
d2 %>%
mutate(Cum = row_number()/n())
# ID Count Cum
#1 1 1 0.1
#2 2 1 0.2
#3 3 1 0.3
#4 4 1 0.4
#5 5 1 0.5
#6 6 2 0.6
#7 7 2 0.7
#8 8 2 0.8
#9 9 3 0.9
#10 10 3 1.0

关于r - R 中的累积百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49550912/

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