首页 > 解决方案 > 如何计算 R 中数据框中时间序列的多个平均值?

问题描述

我对 R 很陌生,并且正在努力解决以下问题:

        Country.Name variable Quantity
    1         World     1977  2524966
    2         World     1978  2552326
    3         World     1979  2710504
    4         World     1980  2732926
    5         World     1981  2636113
    6         World     1982  2803907
    7         World     1983  2778356
    8         World     1984  2693296
    9         World     1985  2695397
    10        World     1986  2747397
    (...)
    30        World     2006  3100186

对于 df$Quantity (numeric) 我想计算两个单独的平均值,从 (1) 1977 到 1991 和从 (2) 1992 到 2006。进一步的搜索并没有帮助我解决这个问题,所以我很高兴听到如果有人能帮我解决这个问题!

最好的,詹尼斯

标签: r

解决方案


这是一个基本的 R 选项:

aggregate(df$Quantity,
    by=list(ifelse(df$variable >= 1977 & df$variable <= 1991, 0, 1)),
    FUN=mean)

这将 1977 年到 1991 年(包括两端)的行存储到零存储桶中,将所有其他年份存储到 1 存储桶中。然后,aggregate找到属于两个存储桶的所有行的平均值。


推荐阅读