在R汇总数据框中添加与一个因子相关的比例
我使用R的“汇总”功能创建了一个汇总数据框架,包括两个因素——公司规模和案例状态——以及公司规模和案例状态的每个组合的记录数n。公司规模有三个级别,案例状态有四个级别,所以我在这个汇总数据框架中总共有12行。以下是汇总数据框的脚本,包括前面的“分组依据”函数:在R汇总数据框中添加与一个因子相关的比例,r,summarize,R,Summarize,我使用R的“汇总”功能创建了一个汇总数据框架,包括两个因素——公司规模和案例状态——以及公司规模和案例状态的每个组合的记录数n。公司规模有三个级别,案例状态有四个级别,所以我在这个汇总数据框架中总共有12行。以下是汇总数据框的脚本,包括前面的“分组依据”函数: df <- group_by(df, df$Firm.Size, df$`Case Status`) summ_firm <- summarize(df, num_records = n()) 我想在汇总数据框中创建一个新列
df <- group_by(df, df$Firm.Size, df$`Case Status`)
summ_firm <- summarize(df, num_records = n())
我想在汇总数据框中创建一个新列,该列提供单个行记录数的比例,即给定公司规模和案例状态组合的记录数相对于相关公司规模的总记录数
换句话说,如果小公司总共有100条记录,并且包含案例状态认证级别的小公司记录的行有20条记录,那么我希望该行的新列填充0.2
这是文章前面提到的“summ_公司”的实际产出
`df_nona_firm$Firm.Size` `df_nona_firm$\`Case Status\`` num_records
<fct> <fct> <int>
1 0-99 Employees Certified 32565
2 0-99 Employees Certified-Expired 24493
3 0-99 Employees Denied 6346
4 0-99 Employees Withdrawn 3155
5 1,000+ Employees Certified 63649
6 1,000+ Employees Certified-Expired 51981
7 1,000+ Employees Denied 3532
8 1,000+ Employees Withdrawn 4078
9 100-999 Employees Certified 24752
10 100-999 Employees Certified-Expired 19095
11 100-999 Employees Denied 2830
12 100-999 Employees Withdrawn 2537
这应该起作用:
library(dplyr)
summ_firm <- df %>%
group_by(Firm.Size, Case.Status) %>%
summarize(records = n()) %>%
group_by(Firm.Size) %>%
mutate(proportion = records/sum(records))
请将dputsumm_公司的输出或子集粘贴到您的问题中,以便我们可以轻松访问您的数据。太好了-非常感谢。我就是这么做的,而且效果很好:sum_firm%group_by firm.Size,Case.Status%>%summarsen=n%>%mutateproportion=n/sumn想知道R是否知道在比例计算中使用group_by中的第一个变量作为分母?不会的。您必须明确指定查看第二个group_by语句