我有三张桌子
第一个表包括ID First_date,Birthday,Sex
ID First_date Birthday Sex
1 19970104 19940921 M
2 19970107 19561224 F
3 20061228 19320426 M
4 20070231 19780825 F
5 20071231 19421206 F
第二个表包含ID event_type event_time
ID event_type event_time
2 1 19990211
4 1 20071226
第三个表包括ID event_type event_time
ID event_type event_time
1 2 19990219
3 2 20070228
然后我想要整合表
ID First_date Birthday Sex event_type event_time
1 19970104 19940921 M 2 19990219
2 19970107 19561224 F 1 19990211
3 20061228 19320426 M 2 20070228
4 20070231 19780825 F 1 20071226
5 20071231 19421206 F 0 NA
id5不在两个和三个表中,因此event_type将编码为0
答案 0 :(得分:0)
您可以在此处使用merge
:
res <- merge(dat1,rbind(dat2,dat3),all.x=TRUE)
ID First_date Birthday Sex event_type event_time
1 1 19970104 19940921 M 2 19990219
2 2 19970107 19561224 F 1 19990211
3 3 20061228 19320426 M 2 20070228
4 4 20070231 19780825 F 1 20071226
5 5 20071231 19421206 F NA NA
然后你可以为错过的event_type指定0:
res$event_type[is.na(res$event_type)] <- 0
这里的数据表是:
dat1 <- read.table(text='ID First_date Birthday Sex
1 19970104 19940921 M
2 19970107 19561224 F
3 20061228 19320426 M
4 20070231 19780825 F
5 20071231 19421206 F',header=TRUE)
dat2 <- read.table(text='ID event_type event_time
2 1 19990211
4 1 20071226',header=TRUE)
dat3 <- read.table(text='ID event_type event_time
1 2 19990219
3 2 20070228',header=TRUE)