У меня есть данные, подобные этим, для одного местоположения
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 2 1 1
2017 1 2 0
Я использовал это только для одного кадра данных.
dat %>%
mutate(date = lubridate::dmy(format(date, format="%d-%m-%Y"))) %>% # correct date format
mutate(year = lubridate::year(date)) %>% # extract the year
group_by(year, Chemical) %>%
mutate(exceed = concentration > limit) %>% # TRUE/FALSE
summarise(tot_exceed = sum(exceed)) %>% # count each T/F
spread(Chemical, tot_exceed) # Spread the results by Chemical
Теперь, если я добавлю различные местоположения в список (каждый DF местоположений выглядит как тот, что выше), как я могу применить код выше для каждого кадра данных в списке?