基于R中的数据帧列表创建ts对象列表
所以我之前发布了一个类似的问题,但这是对它的一种延伸。我的数据集的复杂性增加了,现在我的数据集是一个数据帧列表,其中每个数据帧都有一个基于R中的数据帧列表创建ts对象列表,r,dataframe,time-series,R,Dataframe,Time Series,所以我之前发布了一个类似的问题,但这是对它的一种延伸。我的数据集的复杂性增加了,现在我的数据集是一个数据帧列表,其中每个数据帧都有一个键,CAL,OAS。 键是从一个数据帧更改到另一个数据帧的唯一值CAL是我必须利用的时间刻度,以week.year表示ts对象。而OAS是每周记录的单位数。原始数据集有大约250个数据帧,为了方便起见,我只发布了2个 KEY CAL OAS 444-12235140 01.2019 144.5667 444-1223
键,CAL
,OAS
。
键
是从一个数据帧更改到另一个数据帧的唯一值CAL
是我必须利用的时间刻度,以week.year表示ts对象。而OAS
是每周记录的单位数。原始数据集有大约250个数据帧,为了方便起见,我只发布了2个
KEY CAL OAS
444-12235140 01.2019 144.5667
444-12235140 02.2019 139.6333
444-12235140 03.2019 212.6667
444-12235140 04.2019 415.7000
444-12235140 05.2019 433.5333
444-12235140 06.2019 439.8000
数据帧1
KEY CAL OAS
556-11337513 21.2019 0.00000
556-11337513 22.2019 0.00000
556-11337513 23.2019 0.00000
556-11337513 24.2019 57.00000
556-11337513 25.2019 17.20909
556-11337513 26.2019 130.01818
数据帧2
CAL
的范围从1到52(数值缺失数周),年份变化也从2019年到2021年。
我已尝试改变方法(如前一位慷慨的捐助者所建议):
tt首先,您的for循环已关闭。您只需给出唯一键的数量,但这必须是一个序列,而不仅仅是一个数字。请尝试在1:num of_unique_key中使用i,但在本网站上发布时,请发布部分数据,可能使用dput
,这些数据可以复制和粘贴。你的数据图片不是很好,因为需要有人手动输入所有数据,而你获得帮助的可能性要小得多。由于tt
是一个列表,您需要在循环的最后一行tt[[I]]
上用双括号括起来,因此我对数据进行了更改,以便可以轻松复制。我认为您的sub
行也应该更改为gsub(“.\\\”,“,ds2[[I]][[2]])
,请参见。@astrofunkswag我仍然收到相同的错误。我也在我的数据集中查找过,没有NaN值。
tt <-list()
for (i in 1:num_of_unique_keys) {
week <-as.integer(ds2[[i]][[2]])
year <- as.numeric(sub("...", "",ds2[[i]][[2]]))
zz <- zoo(ds2[[i]][[3]], year + (week - 1) / 52)
tt[[i]] <- ts(zz, frequency = 52)
}