У меня есть фрейм данных со среднесуточными данными о температуре, структурированный примерно так:
'data.frame': 4666 obs. of 6 variables:
$ Site : chr "EB" "FFCE" "IB" "FFCE" ...
$ Date : Date, format: "2013-01-01" "2013-01-01" "2013-01-01" "2014-01-01" ...
$ Day : int 1 1 1 1 1 1 1 1 1 1 ...
$ Year : int 2013 2013 2013 2014 2014 2014 2014 2015 2015 2015 ...
$ Month: int 1 1 1 1 1 1 1 1 1 1 ...
$ Temp : num 28.5 28.3 28.3 27 27.8 ...
Я пытаюсь создать сводную таблицу, которая просто суммирует количество дней в году на сайт вышеопределенные температурные пороги, например 25c, 26c.я могу добиться этого вручную, используя dplyr как so-
Days_above = Site_Daily_average %>%
group_by(Year, Site) %>%
summarise("23" = sum(Temp > 23), "24" = sum(Temp > 24),"25"= sum(Temp >
25), "26"= sum(Temp > 26), "27"= sum(Temp > 27), "28"= sum(Temp > 28), "29"
= sum(Temp > 29),"30"= sum(Temp > 30), "31" = sum(Temp > 31), "ABOVE
THRESHOLD" = sum(Temp > maxthreshold))%>% as.data.frame()
, который создает таблицу примерно так:
Year Site 23 24 25 26 27 28 29 30 31 ABOVE THRESHOLD
1 2012 EB 142 142 142 91 64 22 0 0 0 0
2 2012 FFCE 238 238 238 210 119 64 0 0 0 0
3 2012 IB 238 238 238 218 138 87 1 0 0 0
4 2013 EB 115 115 115 115 115 109 44 0 0 0
5 2013 FFCE 223 223 216 197 148 114 94 0 0 0
6 2013 IB 365 365 365 348 299 194 135 3 0 0
...
однако, как вы можетеувидеть код довольно многословно.Проблема, с которой я столкнулся, заключается в том, что я получаю такой же вывод для последовательности температурных порогов, то есть Tempclasses = Seq (16,32,0.25).
Как вы можете видеть, это заняло бы много времени, чтобы напечатать это вручную,я чувствую, что это очень простое вычисление, и должен быть способ использовать dplyr для распознавания каждой переменной в векторе последовательности, выполнения этой функции и получения выходных данных в полном формате таблицы.извините, если это неясно, так как я относительно новичок в R, любые предложения приветствуются, спасибо.