R:如何按组计算变量占某个值的百分比?

问题描述

因此,我试图获取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的内容是计算一个组在表中出现的频率。我想不到更好的方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...