问题描述
因此,我试图获取r报告一组中具有特定值的特定变量的份额。 例如:让我们考虑一个由1,2和3组组成的数据集。现在,我想知道Variable1在1,2和3组中取值为500的百分比并将其合并为新变量。 是否有便捷的解决方案? 所以它应该看起来像这样:
df
Group Var1 Var1_perc
1 0 50
1 400 50
1 500 50
1 500 50
其他组等等
解决方法
我会使用tidyverse
来完成
计算变量在组中采用某特定值的频率
library(tidyverse)
df %>%
group_by(Group,Var1) %>%
summarise(count = n())
要计算组中的百分比:
df %>%
left_join(df %>%
group_by(grp) %>%
summarise(n = n()),by = "grp" ) %>%
group_by(grp,value) %>%
summarise(percentage = n()/n)
整个left_join
的内容是计算一个组在表中出现的频率。我想不到更好的方法。