【发布时间】:2014-12-18 20:25:40
【问题描述】:
我有一个包含以下列的数据:
CaseID、时间、价值。
“时间”列的值不是 1 的固定间隔。我正在尝试为除 CaseID 之外的其余列添加缺失的时间值和“NA”。
Case Value Time
1 100 07:52:00
1 110 07:53:00
1 120 07:55:00
2 10 08:35:00
2 11 08:36:00
2 12 08:38:00
期望的输出:
Case Value Time
1 100 07:52:00
1 110 07:53:00
1 NA 07:54:00
1 120 07:55:00
2 10 08:35:00
2 11 08:36:00
2 NA 08:37:00
2 12 08:38:00
我试过dt[CJ(unique(CaseID),seq(min(Time),max(Time),"min"))],但它给出了以下错误:
Error in vecseq(f__, len__, if (allow.cartesian || notjoin) NULL else as.integer(max(nrow(x), :
Join results in 9827315 rows; more than 9620640 = max(nrow(x),nrow(i)). Check for duplicate key values in i, each of which join to the same group in x over and over again. If that's ok, try including `j` and dropping `by` (by-without-by) so that j runs for each group to avoid the large allocation. If you are sure you wish to proceed, rerun with allow.cartesian=TRUE. Otherwise, please search for this error message in the FAQ, Wiki, Stack Overflow and datatable-help for advice.
我无法让它工作..任何帮助将不胜感激。
【问题讨论】:
-
你想要的输出是什么?
-
@DavidArenburg 我已经用我想要的输出和我得到的错误编辑了这个问题
-
你是如何分配案例值的?
-
我不明白为什么第 6 行而不是第 7 行是
NA。 -
data.table 版本为 1.9.4
标签: r data.table