Подсчет количества осадков в виде дождей - PullRequest
0 голосов
/ 10 марта 2020

Я хочу посчитать количество дней, в которые выпадал дождь за месяц в разные годы в разных местах.

Это мои данные:

Location Year Month Day Precipitation
A        2008 1     1   0
A        2008 1     2   8.32
A        2008 1     3   4.89
A        2008 1     4   0

У меня до 18 мест, год с 2008 по 2018 год, 12 месяцев в году и 0 для осадков означает отсутствие дождя в этот день.

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Вы можете использовать aggregate:

aggregate(cbind(days=x$Precipitation > 0), as.list(x[c("Location", "Year", "Month")]), sum)
#  Location Year Month days
#1        A 2008     1    2

Данные:

x <- structure(list(Location = structure(c(1L, 1L, 1L, 1L), .Label = "A", class = "factor"), 
    Year = c(2008L, 2008L, 2008L, 2008L), Month = c(1L, 1L, 1L, 
    1L), Day = 1:4, Precipitation = c(0, 8.32, 4.89, 0)), class = "data.frame", row.names = c(NA, -4L))
0 голосов
/ 10 марта 2020

На основании имеющейся информации

df <- df %>%
  filter(Precipitation != 0) %>%
  group_by(Location, Year, Month) %>%
  summarize(DaysOfRain = n())
...