计算具有特定行条件的列的百分比

时间:2017-02-16 17:19:32

标签: r frequency

我有以下数据框:

 sleep health count prop
1     7   Good   100   NA
2     7 Normal    75   NA
3     7    Bad    25   NA
4     8   Good   125   NA
5     8 Normal    75   NA
6     8    Bad    25   NA

我希望根据prop组在count列填充sleep的每个百分比。例如,前3行prop应为0.5,0.375和0.125,最后3行prop分别为0.555,0.333和0.111。

这可以手动完成,先将数据框分开sleep,然后再使用prop.table(prop),但由于有很多sleep组,我找不到简洁的方法做这个。有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

R中,我们可以通过在“睡眠”分组后除以“{1”}“计数”来实现此目的

sum

或使用library(dplyr) df1 %>% group_by(sleep) %>% mutate(prop = round(count/sum(count), 3)) # sleep health count prop # <int> <chr> <int> <dbl> #1 7 Good 100 0.500 #2 7 Normal 75 0.375 #3 7 Bad 25 0.125 #4 8 Good 125 0.556 #5 8 Normal 75 0.333 #6 8 Bad 25 0.111

base R