我想从中提取值的表中有一个很长的时间序列。
该小组每天都有观察结果,但有些不适用。我想将每个横截面的最后一个非 NA 值提取到一个新的时间序列中。它应该转到相同的横截面,并用提取的值填充该横截面内的所有观察值。即,新的时间序列将由堆叠的横截面组成,每个 t 中都有数据。
我在下面的结构中做了一个示例,其中 x 是我要从中提取数据的系列,而 NEW 是我要创建的新系列。
xsection t x NEW
01_00 2000-01-01 146,16 147,2
01_00 2000-01-02 147,2 147,2
01_00 2000-01-03 NA 147,2
02_00 2000-01-01 NA 148,3
02_00 2000-01-02 148,3 148,3
02_00 2000-01-03 NA 148,3
03_00 2000-01-01 145,9 147,4
03_00 2000-01-02 NA 147,4
03_00 2000-01-03 147,4 147,4
我还创建了一个 pdata.frame,其中在同一行中指定了横截面和时间 ID。
row.names x
01_00-2000-01-01 146.16
01_00-2000-01-02 147,2
01_00-2000-01-03 NA
我是 R 新手,所以我很感激你的建议。
*编辑表格结构:
Classes ‘data.table’ and 'data.frame': 7212530 obs. of 6 variables:
$ var01 : Factor w/ 1018 levels "01_00","01_01",..: 1 1 1 1 1 1 1 1 1 1 ...
$ id01 : Factor w/ 7085 levels "1995-09-25","1995-09-26",..: 1 2 3 4 5 6 7 8 9 10 ...
$ spot : num 146 146 145 146 147 ...
$ weekly: num NA NA NA NA NA NA NA NA NA NA ...
$ NEW : num 241 241 241 241 241 ...
$ NEW3 : num 241 241 241 241 241 ...
- attr(*, ".internal.selfref")=<externalptr>