我有两个不同长度的表,我需要将它们合并为两个常用列(季节和客户端),并在没有公共元素时用NA填充单元格。下面我展示了我需要的两张原始表和最终表中的一小部分。我尝试过很多事情都没有成功。
season client.ID qtty
1998 13 30
1999 13 30
2000 13 29
1998 28 18
1999 28 18
2000 28 18
1998 35 21
1999 35 21
2000 35 21
season client.ID vessel.ID overLength
1998 28 29 17.1
1998 28 1809 4.26
1998 28 2215 9.45
1998 28 4173 5.8
1998 28 8151 4.5
1999 28 29 17.1
1999 28 1809 4.26
1999 28 2215 9.45
1999 28 4173 5.8
1999 28 8151 4.5
2000 28 29 17.1
2000 28 1809 4.26
2000 28 2215 9.45
2000 28 4173 5.8
2000 28 8151 4.5
1998 35 36 9.91
1999 35 36 9.91
2000 35 36 9.91
1998 35 40 9.91
1999 35 40 9.91
2000 35 40 9.91
season client.ID vessel.ID overLength qtty
1998 13 NA NA 30
1999 13 NA NA 30
2000 13 NA NA 29
1998 28 29 17.1 18
1998 28 1809 4.26 18
1998 28 2215 9.45 18
1998 28 4173 5.8 18
1998 28 8151 4.5 18
1999 28 29 17.1 18
1999 28 1809 4.26 18
1999 28 2215 9.45 18
1999 28 4173 5.8 18
1999 28 8151 4.5 18
2000 28 29 17.1 18
2000 28 1809 4.26 18
2000 28 2215 9.45 18
2000 28 4173 5.8 18
2000 28 8151 4.5 18
1998 35 36 9.91 21
1999 35 36 9.91 21
2000 35 36 9.91 21
1998 35 40 9.91 21
1999 35 40 9.91 21
2000 35 40 9.91 21
答案 0 :(得分:7)
这是merge
all = TRUE
假设您的数据位于data1
和data2
然后
merge(data1, data2, all = TRUE)
应该有用。
如果要指定合并的内容(如果有不想使用的常用列)
merge(data1, data2, all = TRUE, by = c('season', 'client.ID'))