【发布时间】:2021-09-08 09:14:33
【问题描述】:
我有一个如下列表
str(list_ts_split)
List of 5
$ date :List of 2
..$ train: Time-Series [1:24] from 2019 to 2021: 1.55e+09 1.55e+09 1.55e+09 1.55e+09
1.56e+09 ...
..$ test : Time-Series [1:6] from 2021 to 2021: 1.61e+09 1.61e+09 1.61e+09 1.62e+09 1.62e+09
...
$ actualB1:List of 2
..$ train: Time-Series [1:24] from 2019 to 2021: 5463 7618 3745 6760 5856 ...
..$ test : Time-Series [1:6] from 2021 to 2021: 5535 7326 6195 2435 3041 ...
$ actualB2:List of 2
..$ train: Time-Series [1:24] from 2019 to 2021: 6523 1734 9544 4687 8076 ...
..$ test : Time-Series [1:6] from 2021 to 2021: 3647 9272 4974 5931 1459 ...
$ actualAx:List of 2
..$ train: Time-Series [1:24] from 2019 to 2021: 193 200 310 149 719 357 470 623 678 533 ...
..$ test : Time-Series [1:6] from 2021 to 2021: 274 142 968 831 178 184
$ actualAy:List of 2
..$ train: Time-Series [1:24] from 2019 to 2021: 3053 4351 3284 2155 1805 ...
..$ test : Time-Series [1:6] from 2021 to 2021: 8236 1585 2324 5692 4249 ...
我可以使用下面的代码访问列表列表的元素
df1_tstrain <- list_ts_split$actualB1$train
df1_tstest <- list_ts_split$actualB1$test
list_ts_split $actualB1$train
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2019 5463 7618 3745 6760 5856 2645 4061 1162 6829 7584 8383 4016
2020 2827 1666 3753 2004 1757 9360 5989 9031 1584 1435 8365 9209
list_ts_split$actualB1$test
Jan Feb Mar Apr May Jun
2021 5535 7326 6195 2435 3041 2737
EDIT1:我的问题是,无论如何要创建一个循环或使用一个函数来做同样的事情 df1_tstrain
EDIT2:
我现在正在尝试类似下面的东西
for (i in 1:length(list_ts_split)){
assign(paste0("tstrain",i}.as.data.frame(list_ts_split[[i]]))
}
【问题讨论】:
-
我无法弄清楚“自动”是什么意思。看来您已经知道该怎么做了。您最后的代码显然不打算在实践中使用,而是似乎试图传达某种在实现上与
df1_tstrain <- list_ts_split$actualB1$train不同的操作 -
不。不要使用 commets 来澄清问题。使用edit 设施。 “在全局环境中自动创建变量,无需我将其硬编码为变量名”是什么意思。你为什么不给它一个名字?
-
例如,假设我有 100 个列表,这 100 个列表中的每一个都包含 2 个元素。我不想手动输入我的 R 脚本 ... train1
-
在
df1_tstrain、df1_tstest等全局环境中创建多个对象并不是一个好习惯。它们污染全球环境,管理起来非常困难。在这之后你的下一步是什么?您可以在list_ts_split上使用lapply直接执行每个列表上的步骤。 -
是的,我认为是这样。我找到了一个效果很好的不同解决方案。我使用 do.call("rbind",list_ts_split) 创建每个训练/测试的列表,以便我可以使用 list_ts_split[[1]] 等指定它们。
标签: r function loops time-series data-manipulation