如何在分组数据框中创建一列百分比?
How to create a column of percentages within a grouped dataframe?
我使用下面的代码创建了一个频率 table,DF。但是,我还想在 table 中创建一个 percentages/proportions 列,以查看每个键的每个函数的 percentage/proportion。我不确定如何调整我的代码来执行此操作。任何建议和帮助将不胜感激!
gather(key = 'key', value = 'freq', -Function) %>%
mutate(freq = as.numeric(freq)) %>%
group_by(Function, key) %>%
summarise(freq=sum(freq)) ```
如果我对你的问题的理解正确,你可以继续按键分组并计算 percentage/proportion
gather(key = 'key', value = 'freq', -Function) %>%
mutate(freq = as.numeric(freq)) %>%
group_by(Function, key) %>%
summarise(freq = sum(freq)) %>%
group_by(key) %>%
mutate(prop = freq / sum(freq))
尝试使用这个:
library(dplyr)
df %>%
tidyr::gather(key = 'key', value = 'freq', -Function) %>%
mutate(freq = as.numeric(freq)) %>%
group_by(key, Function) %>%
summarise(freq=sum(freq)) %>% #..... (1)
mutate(freq = freq/sum(freq))
注意-
gather
已停用,因此请改用 pivot_longer
。
- 以上工作没有明确地按
key
分组,因为当你在 (1) 处执行 summarise
时,只有最后一级分组被删除,即 Function
,所以数据仍然分组key
在 (1)。
我使用下面的代码创建了一个频率 table,DF。但是,我还想在 table 中创建一个 percentages/proportions 列,以查看每个键的每个函数的 percentage/proportion。我不确定如何调整我的代码来执行此操作。任何建议和帮助将不胜感激!
gather(key = 'key', value = 'freq', -Function) %>%
mutate(freq = as.numeric(freq)) %>%
group_by(Function, key) %>%
summarise(freq=sum(freq)) ```
如果我对你的问题的理解正确,你可以继续按键分组并计算 percentage/proportion
gather(key = 'key', value = 'freq', -Function) %>%
mutate(freq = as.numeric(freq)) %>%
group_by(Function, key) %>%
summarise(freq = sum(freq)) %>%
group_by(key) %>%
mutate(prop = freq / sum(freq))
尝试使用这个:
library(dplyr)
df %>%
tidyr::gather(key = 'key', value = 'freq', -Function) %>%
mutate(freq = as.numeric(freq)) %>%
group_by(key, Function) %>%
summarise(freq=sum(freq)) %>% #..... (1)
mutate(freq = freq/sum(freq))
注意-
gather
已停用,因此请改用pivot_longer
。- 以上工作没有明确地按
key
分组,因为当你在 (1) 处执行summarise
时,只有最后一级分组被删除,即Function
,所以数据仍然分组key
在 (1)。