我试图计算每组中n
和sum(n)
之间的比率。我知道我离解决方案不远了。
数据:
df_rld %>%
select(type, run_length) %>%
mutate(run_length = as.numeric(run_length)) %>%
group_by(type, run_length) %>%
count(run_length)
type | run_length | n
---------------------------
A | 15 | 1
B | 24 | 3
B | 26 | 7
C | 27 | 10
C | 28 | 2
我想要什么:
type | run_length | n | ratio
-----------------------------------------
A | 15 | 1 | 1 / 1 = 1
B | 24 | 3 | 3 / (3+7) = 0.3
B | 26 | 7 | 7 / (3+7) = 0.7
C | 27 | 10 | 10 / (10+2) = 0.83
C | 28 | 2 | 2 / (10+2) = 0.17
比值分母是组对n的总和,但我不知道如何计算。使用group_by
,我无法获得所有n的和,因此由于某种原因,比值等于1。为了简单起见,我不想加入表格。
您应该只按type
分组,这样n/sum(n)
将为您提供正确的计算。如果您同时按type
和run_length
分组,那么您将始终获得比率1(除非有两个条目具有相同的type
和run_length
值,在这种情况下,这些行中您将获得0.5(。
df_rld %>%
select(type, run_length) %>%
mutate(run_length = as.numeric(run_length)) %>%
group_by(type, run_length) %>%
count(run_length) %>%
group_by(type) %>%
mutate(ratio = n/sum(n))
#> # A tibble: 5 x 4
#> # Groups: type [3]
#> type run_length n ratio
#> <fct> <int> <int> <dbl>
#> 1 A 15 1 1
#> 2 B 24 3 0.3
#> 3 B 26 7 0.7
#> 4 C 27 10 0.833
#> 5 C 28 2 0.167