绑定时间序列数据与列表不同长度

发布于 2025-02-13 15:48:46 字数 554 浏览 2 评论 0原文

我有从lapply输出的时间序列数据,并希望从各自的开始日期开始cbind一起。在这里,我设置了从随机生成的日期开始的5个随机生成时间序列的示例。

set.seed(123)
d <- lapply(1:5,function(x) ts(rnorm(runif(1,5,20),0,10),start = floor(c(runif(1,2019,2020),runif(1,1,12))),frequency = 12))

我尝试了cbind,cbindna/cbind.na(软件包'qpcr'),data.frame,cbind2等...我找不到适合的工具。使用一个用于填充空空间的循环似乎很愚蠢。 我所需的输出图像:

“所需输出”

I have time series data outputted from a lapply and would like to cbind them together starting from their respective start date. Here I set an example of 5 random generated time series starting from random generated dates.

set.seed(123)
d <- lapply(1:5,function(x) ts(rnorm(runif(1,5,20),0,10),start = floor(c(runif(1,2019,2020),runif(1,1,12))),frequency = 12))

I tried cbind, cbindna/cbind.na (package 'qpcR'), data.frame, cbind2, etc... I can not find the appropriate tool for this. Using a for loop filling the empty spaces seems silly.
My desired output image:

Desired output

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不在是我 2025-02-20 15:48:46

您只需要cbind()base。使用do.call()因为d是列表。

d2 <- do.call(cbind, setNames(d, paste0('t', 1:length(d))))
输出
                 t1         t2         t3          t4         t5
Feb 2019         NA   3.598138         NA          NA         NA
Mar 2019         NA   4.007715         NA          NA  -2.416898
Apr 2019         NA   1.106827         NA          NA  -4.682005
May 2019         NA  -5.558411  -8.185157          NA  -7.729782
Jun 2019         NA  17.869131   6.849361          NA  21.499193
Jul 2019         NA   4.978505  -3.200564          NA -13.343536
Aug 2019         NA -19.666172 -13.115224          NA   4.958705
Sep 2019         NA   7.013559  -5.996083          NA  12.339762
Oct 2019   8.005543  -4.727914  -1.294107          NA   6.343621
Nov 2019  11.902066 -10.678237   8.867361 -12.6539635   4.120223
Dec 2019 -16.895557  -2.179749  -1.513960  21.6895597   7.935853
Jan 2020  12.394959 -10.260044   3.297912  12.0796200  -1.524106
Feb 2020  -1.089660  -7.288912 -32.273228 -11.2310858  -2.288958
Mar 2020  -1.172420  -6.250393  -7.717918  -4.0288484  -9.007918
Apr 2020   1.830826 -16.866933   2.865486  -4.6665535         NA
May 2020  12.805549         NA -12.205120   7.7996512         NA
Jun 2020 -17.272706         NA         NA  -0.8336907         NA
Jul 2020         NA         NA         NA   2.5331851         NA
Aug 2020         NA         NA         NA  -0.2854676         NA
Sep 2020         NA         NA         NA  -0.4287046         NA
Oct 2020         NA         NA         NA  13.6860228         NA
Nov 2020         NA         NA         NA  -2.2577099         NA
Dec 2020         NA         NA         NA  15.1647060         NA
Jan 2021         NA         NA         NA -15.4875280         NA
Feb 2021         NA         NA         NA   5.8461375         NA

输出仍然是ts对象。

class(d2)
# [1] "mts"    "ts"     "matrix"

You just need cbind() from base. Use do.call() because d is a list.

d2 <- do.call(cbind, setNames(d, paste0('t', 1:length(d))))
Output
                 t1         t2         t3          t4         t5
Feb 2019         NA   3.598138         NA          NA         NA
Mar 2019         NA   4.007715         NA          NA  -2.416898
Apr 2019         NA   1.106827         NA          NA  -4.682005
May 2019         NA  -5.558411  -8.185157          NA  -7.729782
Jun 2019         NA  17.869131   6.849361          NA  21.499193
Jul 2019         NA   4.978505  -3.200564          NA -13.343536
Aug 2019         NA -19.666172 -13.115224          NA   4.958705
Sep 2019         NA   7.013559  -5.996083          NA  12.339762
Oct 2019   8.005543  -4.727914  -1.294107          NA   6.343621
Nov 2019  11.902066 -10.678237   8.867361 -12.6539635   4.120223
Dec 2019 -16.895557  -2.179749  -1.513960  21.6895597   7.935853
Jan 2020  12.394959 -10.260044   3.297912  12.0796200  -1.524106
Feb 2020  -1.089660  -7.288912 -32.273228 -11.2310858  -2.288958
Mar 2020  -1.172420  -6.250393  -7.717918  -4.0288484  -9.007918
Apr 2020   1.830826 -16.866933   2.865486  -4.6665535         NA
May 2020  12.805549         NA -12.205120   7.7996512         NA
Jun 2020 -17.272706         NA         NA  -0.8336907         NA
Jul 2020         NA         NA         NA   2.5331851         NA
Aug 2020         NA         NA         NA  -0.2854676         NA
Sep 2020         NA         NA         NA  -0.4287046         NA
Oct 2020         NA         NA         NA  13.6860228         NA
Nov 2020         NA         NA         NA  -2.2577099         NA
Dec 2020         NA         NA         NA  15.1647060         NA
Jan 2021         NA         NA         NA -15.4875280         NA
Feb 2021         NA         NA         NA   5.8461375         NA

The output is still a ts object.

class(d2)
# [1] "mts"    "ts"     "matrix"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文