【问题标题】:cbind function with yearly vectors带有年度向量的 cbind 函数
【发布时间】:2017-11-18 17:18:29
【问题描述】:
for(t in 1921:2017) { 
  nam <- paste("", t, sep = "")
  assign(nam, window(aCPI_gr, start=c(t,1), end=c(t,12)))
}
aCPI_gr_y <- cbind(`1921`: `2017`) #doesn't work

此循环使用每年每个月的 CPI 数据生成向量。现在我想用 cbind 将它们全部打包到一个数据框中,但我当然懒得在 cbind 函数中手动输入每个年份向量。有没有一种简单的方法可以避免手动输入每年的向量?类似cbind(1921:2017)

【问题讨论】:

    标签: r loops for-loop vector cbind


    【解决方案1】:

    1) 矩阵 如果您有一个跨越 97 年的月度单维 ts 系列,例如下面的测试系列 tser,那么这会将其转换为 12 x 97 矩阵,其中包含一个每列一年。如果不需要名称,可以省略 dimnames 参数。

    tser <- ts(seq_len(12 * 97), start = 1921, freq = 12) # test data
    m <- matrix(tser, 12, dimnames = list(month = 1:12, year = 1921:2017))
    

    2) tapply 另一种方法是:

    tapply(tser, list(month = cycle(tser), year = as.integer(time(tser))), c)
    

    【讨论】:

      猜你喜欢
      • 2019-05-22
      • 2012-11-01
      • 1970-01-01
      • 2021-03-18
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多