library(data.table)
library(tibble)
dt1 <- setDT(tribble(~ID,~time,~val1,~val2,
1,2,4,NA,
1,2,3,"O",
1,2,3,"A",
1,3,3,"F",
2,1,3,"A",
2,2,2,"B",
2,2,1,"L",
3,2,2,"B",
3,3,2,"O"),key = c("ID","time"))
Each ID should have a row for time 1,2 and 3 with NA in col val1 and val2 in case the timepoint is missing. Any suggestions?
desired output:
(setDT(tribble(~ID,~time,~val1,~val2,
1,1,NA,NA,
1,2,4,NA,
1,2,3,"O",
1,2,3,"A",
1,3,3,"F",
2,1,3,"A",
2,2,2,"B",
2,2,1,"L",
2,3,NA,NA,
3,1,NA,NA,
3,2,2,"B",
3,3,2,"O"),key = c("ID","time")))