Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于R中的数据帧列表创建ts对象列表_R_Dataframe_Time Series - Fatal编程技术网

基于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) 
 }