【发布时间】:2018-12-17 10:50:22
【问题描述】:
我的数据
Chemical date concentration limit
A 01-01-2016 0.2 0.01
A 01-02-2016 0.2 0.01
A 01-01-2017 0.005 0.01
A 01-02-2017 0.2 0.01
B 01-01-2016 0.3 0.1
B 01-02-2016 0.05 0.1
B 01-01-2017 0.2 0.1
B 01-02-2017 0.2 0.1
C 01-01-2016 1.2 1
C 01-02-2016 0.8 1
C 01-01-2017 0.9 1
C 01-02-2017 0.9 1
我想显示每种化学品超过每年限制的百分比(请注意,每个限制都不同)。所以我想得到这样的东西
Year A B C
2016 100% 50% 50%
2017 50% 100% 0
我已经有了计算每种化学品每年超过次数的代码,但是在计算百分比时我弄错了。
这个我得数数。
library(tidyverse)
counts<- data %>%
group_by(Chemical, grp = format(date, format = '%Y')) %>%
mutate(exceed = concentration >= limit) %>% # TRUE/FALSE
summarise(tot_exceed = sum(exceed)) %>% # count each T/F
spread(Chemical, tot_exceed, fill = 0)
所以我明白了
Year A B C
2016 2 1 1
2017 1 2 0
对于百分比,我试过了。
percentage_exceed<- data %>%
group_by(Chemical, grp = format(date, format = '%Y')) %>%
mutate(exceed = concentration >= limit, countconc = length(concentration))
%>%
summarise(percent = (sum(exceed)/countconc)*100) %>%
spread(Chemical, percent, fill = 0)
但我没有得到我想要的结果。你能帮帮我吗?
【问题讨论】:
标签: r count percentage