2013-05-06 49 views
0

我有一個數據框df包含數年的月度數據。如何在R中的列中每隔12個元素?

第一列包含日期(並命名爲date)。

第二列包含月度數據(並且名稱爲data)。

這是一個數據框,我不想訴諸於特定的R包。

如何計算每月的平均值(1月至12月)? 這就是我如何計算我的data列中每12個元素的平均值?

下面是示例數據

date data 
01-83 498957 
02-83 493861 
03-83 496304 
04-83 422322 
05-83 379474 
06-83 319446 
07-83 332270 
08-83 362075 
09-83 318477 
10-83 283378 
11-83 214823 
12-83 185131 
01-84 160663 
02-84 192201 
03-84 212521 
04-84 249950 
05-84 274998 
06-84 332064 
07-84 364159 
08-84 384619 
09-84 439380 
10-84 445955 
11-84 493763 
12-84 463612 
01-85 314638 
02-85 368237 
03-85 254565 
04-85 201342 
05-85 230851 
06-85 227190 
07-85 264440 
08-85 297501 
09-85 503771 
10-85 698504 
11-85 768215 
12-85 852077 
01-86 939023 
02-86 941674 
03-86 861596 
04-86 810595 
05-86 666097 
06-86 643074 
07-86 640936 
08-86 626805 
09-86 615487 
10-86 650764 
11-86 665444 
12-86 565598 
01-87 511561 
02-87 475577 
03-87 451673 
04-87 406587 
05-87 394605 
06-87 429394 
07-87 509071 
08-87 567143 
09-87 664491 
10-87 688447 
11-87 602141 
12-87 513640 
+0

請張貼的樣本你的數據... – juba 2013-05-06 11:09:55

+0

嗨。我第一次沒有發佈數據,因爲長論在這個論壇上有點無聊。 – tagoma 2013-05-06 11:15:30

回答

5

在這裏你去:

> tapply(df$data,substr(df$date,1,2),mean) 
     01  02  03  04  05  06  07  08  09  10  11  12 
484968.4 494310.0 455331.8 418159.2 389205.0 390233.6 422175.2 447628.6 508321.2 553409.6 548877.2 516011.6 
3
mean(df[df$date=="January","data"]) 
#etc. for each month... 

EDIT(基於看到實際數據):

by(df$data,substr(df$date,1,2),FUN=mean) 
相關問題