У меня есть кадр данных, содержащий месячные значения NDVI с 2000-2012 для 26 станций. Сначала я отсортировал свой файл данных по году, затем станцию и, наконец, ndvi.Извлечение наивысших значений из столбца в временном интервале dataframe
Мой dataframe R выглядит примерно так (извините о форматировании):
t station year month ndvi altitude precipitation
8 a 2000 aug 0.7793 2143 592.9
9 a 2000 sept 0.7524 2143 135.3
10 a 2000 oct 0.6597 2143 77.5
4 a 2000 apr 0.6029 2143 72.6
7 a 2000 jul 0.6018 2143 606.1
11 a 2000 nov 0.5801 2143 4.4
12 a 2000 dec 0.5228 2143 0
6 a 2000 jun 0.4969 2143 505.9
5 a 2000 may 0.4756 2143 241.7
2 a 2000 feb 0.4396 2143 4
3 a 2000 mar 0.4393 2143 25.5
1 a 2000 jan 0.4138 2143 16
8 b 2000 aug 0.7523 122 832.3
9 b 2000 sept 0.7003 122 229.7
7 b 2000 jul 0.667 122 662
5 b 2000 may 0.6639 122 323.3
4 b 2000 apr 0.593 122 88.6
6 b 2000 jun 0.5508 122 752.1
Мне нужно извлечь первые три NDVI через строки для каждой станции в течение каждого года и попытался с помощью этого кода:
top3 <- split(R, R$station)
subsetted.data <- lapply(top3, FUN = function(x) head(x, 3))
subsetted.data
flatten.data <- do.call("rbind", subsetted.data)
View(flatten.data)
Однако, я получаю только кадр данных с тремя верхними рядами станций ndvi в 2000 году, а не через годы после этого.
Кто-нибудь знает, как я могу это исправить?
спасибо.
Пожалуйста, разместите небольшой образец данных. Но могли бы вы использовать 'head (sort (R $ station), 3)' возможно? –
Согласен, воспроизводимый пример поможет всем: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –