R - Como adicionar linhas para valores ausentes para seqüências de grupos exclusivas?
Meu problema é semelhante a esta pergunta anteriorA maneira mais rápida de adicionar linhas para valores ausentes em um data.frame?
Não consigo descobrir como adicionar linhas preenchidas com "NA" quando o mínimo / máximo é diferente por grupo.
> red<-data.frame(project = c(6, 6, 6, 6, 6, 9, 9, 9), period =c(1, 2, 5:7, 2, 4, 5), v3=letters[1:8], v4=c("red", "yellow", recursive = T))
> red
project period v3 v4
1 6 1 a red
2 6 2 b yellow
3 6 5 c red
4 6 6 d yellow
5 6 7 e red
6 9 2 f yellow
7 9 4 g red
8 9 5 h yellow
Eu quero que ele se pareça com:
project period v3 v4
6 1 a red
6 2 b yellow
6 3 NA NA
6 4 NA NA
6 5 c red
6 6 d yellow
6 7 e red
9 2 f yellow
9 3 NA NA
9 4 g red
9 5 h yellow
Quando eu usei
library(data.table)
DT=as.data.table(red)
setkey(DT, project, period)
DT[CJ(unique(project), seq(min(period), max(period)))]
fez com que cada grupo de projetos tivesse 7 períodos; O Projeto 6 deve ter períodos de 1 a 7, mas o Projeto 9 deve ter os períodos de 2 a 5.
Eu tentei mexer com.SD[ which.max(period)], by=project]
mas sem charuto.
Eu pensei que deveria ser algo simples no seq (), mas eu tenteiseq(min(period, by=project))
sem sorte
Obrigado!