【发布时间】:2018-06-07 08:35:30
【问题描述】:
我有一个包含数百万行的 data.table,格式如下。
每个ID 都有多年结果,但我只知道一年中的哪一天从 1 到 365 或 366。我不知道月份或年份,但我知道日期第一行(例如 1995/1/1)。
ID DAY ATRR1 ATRR2
1 1 0.2 0.4
2 1 1.2 0.5
3 1 0.8 1.4
1 2 1.3 1.5
2 2 2.3 0.3
3 2 1.7 1.3
1 3 1.5 1.4
2 3 2.1 1.3
3 3 1.2 0.3
...
1 365 1.5 1.4
2 365 2.1 1.3
3 365 1.2 0.3
1 1 1.5 1.4
2 1 2.1 1.3
3 1 1.2 0.3
1 2 1.3 1.5
2 2 2.3 0.3
3 2 1.7 1.3
...
我想添加一个 DATE 列,在 DAY 列中的每次更改时添加一天,因此结果将是:
ID DAY ATRR1 ATRR2 DATE
1 1 0.2 0.4 1995/1/1
2 1 1.2 0.5 1995/1/1
3 1 0.8 1.4 1995/1/1
1 2 1.3 1.5 1995/1/2
2 2 2.3 0.3 1995/1/2
3 2 1.7 1.3 1995/1/2
1 3 1.5 1.4 1995/1/3
2 3 2.1 1.3 1995/1/3
3 3 1.2 0.3 1995/1/3
...
1 365 1.5 1.4 1995/12/31
2 365 2.1 1.3 1995/12/31
3 365 1.2 0.3 1995/12/31
1 1 1.5 1.4 1996/1/1
2 1 2.1 1.3 1996/1/1
3 1 1.2 0.3 1996/1/1
1 2 1.3 1.5 1996/1/2
2 2 2.3 0.3 1996/1/2
3 2 1.7 1.3 1996/1/2
...
这怎么可能?
【问题讨论】:
-
Marc,你能发布 dput(your.data.table) 吗?
-
您的
DAY变量中是否存在空白,或者是否对所有年份的每一天都有观察? -
嗨,不,根本没有间隙。一年中的每一天都有观测数据。
-
Henk:表格太大,无法发布 dput() 结果..
-
dput(head(dt, 25))