我有一个数据框df
,其中包含多年的月度数据。
第一列包含日期(并命名为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 :(得分: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
答案 1 :(得分:3)
mean(df[df$date=="January","data"])
#etc. for each month...
编辑(基于查看实际数据):
by(df$data,substr(df$date,1,2),FUN=mean)