我有以下数据框:
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
组,我找不到简洁的方法做这个。有什么想法吗?
答案 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