R 计算具有特定行条件的列的百分比
我有以下数据帧:R 计算具有特定行条件的列的百分比,r,frequency,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列中填入基于sleep组的count的每个百分比。例如,前3行prop应分别为0.5、0.375和0.1
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
列中填入基于sleep
组的count
的每个百分比。例如,前3行prop
应分别为0.5、0.375和0.125,然后最后3行prop
分别为0.555、0.333和0.111
这可以手动完成,首先通过
sleep
分离数据帧,然后对每个数据帧使用prop.table(prop)
,但是由于有大量sleep
组,我找不到一种简洁的方法来完成。有什么想法吗?在R
中,我们可以用“睡眠”分组后的“计数”的总和除以
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
或的可能副本
df1$prop <- with(df1, ave(count, sleep, FUN=prop.table))