Как применить код ко всем фреймам данных в списке? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть данные, подобные этим, для одного местоположения

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 местоположений выглядит как тот, что выше), как я могу применить код выше для каждого кадра данных в списке?

...