Некоторые из вас помогают с этим вопросом через базу R, но я пытаюсь сделать это сейчас с аккуратными данными. Вот мой набор данных:
data <- tibble( "DATE_FIRE"= c("1989-07-31", "1989-07-31", "1989-07-31", "1989-07-31","1989-07-31","1989-08-31", "1989-08-31", "1989-08-31", "1989-08-31","1989-08-31"),
"FID_FIRE" = c(1,1,1,1,1,2,2,2,2,2),
"date" = c("1988-01-01", "1989-01-01","1990-01-01","1991-06-07","1992-01-01", "1988-01-01", "1989-01-01","1990-01-01","1991-06-07","1992-01-01"),
"NDVI" = c( 0.9, 0.8, 0.1, 0.2, 0.3, 0.8, 0.85, 0.15, 0.30, 0.50))
> data
# A tibble: 10 x 4
DATE_FIRE FID_FIRE date NDVI
<chr> <dbl> <chr> <dbl>
1 1989-07-31 1 1988-01-01 0.9
2 1989-07-31 1 1989-01-01 0.8
3 1989-07-31 1 1990-01-01 0.1
4 1989-07-31 1 1991-06-07 0.2
5 1989-07-31 1 1992-01-01 0.3
6 1989-08-31 2 1988-01-01 0.8
7 198`enter code here`9-08-31 2 1989-01-01 0.85
8 1989-08-31 2 1990-01-01 0.15
9 1989-08-31 2 1991-06-07 0.3
10 1989-08-31 2 1992-01-01 0.5
Как видите, у меня есть даты 2 лесных участков, пожар 1 и пожар 2 (столбец FID_FIRE
). DATE_FIRE
сообщает нам, когда произошел пожар на каждом участке. У меня также есть данные в виде NDVI
(параметры зелени) для этих участков до и после пожара (см. Столбцы date
и NDVI
).
Я бы хотел добавить для столбца вычисление для каждого графика среднего значения из NDVI
до того, как произошел пожар . В случае FID_FIRE=1
это будет среднее значение NDVI
значений row 1
и 2
.
Выходные данные должны выглядеть следующим образом:
> desired_output
# A tibble: 10 x 5
DATE_FIRE FID_FIRE date NDVI meanPrefire
<chr> <dbl> <chr> <dbl> <dbl>
1 1989-07-31 1 1988-01-01 0.9 0.85
2 1989-07-31 1 1989-01-01 0.8 0.85
3 1989-07-31 1 1990-01-01 0.1 0.85
4 1989-07-31 1 1991-06-07 0.2 0.85
5 1989-07-31 1 1992-01-01 0.3 0.85
6 1989-08-31 2 1988-01-01 0.8 0.825
7 1989-08-31 2 1989-01-01 0.85 0.825
8 1989-08-31 2 1990-01-01 0.15 0.825
9 1989-08-31 2 1991-06-07 0.3 0.825
10 1989-08-31 2 1992-01-01 0.5 0.825