我有一个大约15.000次观测的数据集,持续了几个月。 每个日期都有不同的观察数。 每次观察的结果是“1”或“0”。
Obs Reslt Date ....
1 0 19-02-2017
2 1 19-02-2017
3 0 19-02-2017
4 0 19-02-2017
5 1 20-02-2017
6 1 20-02-2017
7 0 20-02-2017
8 0 20-02-2017
我想知道每天观察到的结果为“1”的百分比。
在上面的示例中,结果将是:
19-02-2017 - 25%
20-02-2017 - 50%
我想知道是否有人可以帮助我。 谢谢!
答案 0 :(得分:0)
如果您的数据集名为df
,那么
library(dplyr)
df %>%
group_by(Date) %>%
summarise(Perc = mean(Reslt)) %>%
mutate(PercText = scales::percent(Perc))
编辑:我还添加了第二列PercText
,其中百分比存储为文字。
答案 1 :(得分:0)
library('scales') #useful in percent conversion
> dat
Obs Reslt Date
1 1 0 19-02-2017
2 2 1 19-02-2017
3 3 0 19-02-2017
4 4 0 19-02-2017
5 5 1 20-02-2017
6 6 1 20-02-2017
7 7 0 20-02-2017
8 8 0 20-02-2017
res <- aggregate(dat$Reslt, by=list(Date=dat$Date), FUN=mean) #calculate mean from each group of rows based on row values in column Date
res[,2] <- res[,2]*100 #small manipulation of data to get procentage
res[,2] <- percent(res[,2] / 100)
>res
Date x
1 19-02-2017 25%
2 20-02-2017 50%