我有一個數據框,其中包含2000-2012年的26個站的每月NDVI值。我根據年份首先對數據幀進行了排序,然後是站點,最後是ndvi。從時間序列數據框的列中提取最高值
我的數據框[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)
但是,我只在2000年獲得了排名前三的ndvi行數據幀,而不是數年後。
有誰知道我該如何解決這個問題?
謝謝。
請張貼一小部分數據樣本。但是,你可以使用頭(排序(R $站),3)'也許? –
我同意,一個可重複的例子將幫助大家:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –