我使用R'汇总'创建了汇总数据框。功能,包括两个因素 - "公司规模" &安培; "案例状态" - 以及"公司规模"的每个组合的记录数量(n)。和"案件状态"。公司规模有三个级别,案例状态有四个级别,因此我在此汇总数据框中总共有12行。以下是汇总数据框的脚本(包括前面的' group by'函数):
df <- group_by(df, df$Firm.Size, df$`Case Status`)
summ_firm <- summarize(df, num_records = n())
我想在汇总数据框中创建一个新列,该列提供单个行记录数的一部分(即给定组合&#34;公司规模&#34的记录数量;以及&#34;案例状态&#34;)关于相关公司规模的总记录。
换句话说,如果&#34;小公司&#34;总共有100条记录和包含&#34; Small Firms&#34;那是&#34;认证&#34; (案例状态的级别)有20条记录,我希望这个新列用0.2填充该行。
以下是&#39; summ_firm&#39;的实际输出。在帖子前面提到过。
`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
答案 0 :(得分:1)
这应该有效:
library(dplyr)
summ_firm <- df %>%
group_by(Firm.Size, Case.Status) %>%
summarize(records = n()) %>%
group_by(Firm.Size) %>%
mutate(proportion = records/sum(records))