我有这个问题:
table1 = table([1 1 2 2].', [1 2 3 4].');
table2 = table([1 1 2 2].', [100 200 300 400].');
table2.Properties.VariableNames{2} = 'Var3';
join(table1, table2)
给出(在2015b)
>> join(table1, table2)
Error using table/join (line 111)
The key variable for B must have unique values.
join
命令很好,因为它保留了table1
的原始行排序,但它无法处理table2
中的重复键值或缺少键值。命令innerjoin
和outerjoin
可以,但可以根据键对行重新排序。
我希望新函数的行为与SQL类似,这样如果有重复值,则使用交叉产品,即输出应为:
ans =
Var1 Var2 Var3
____ ____ ____
1 1 100
1 2 100
1 1 200
1 2 200
2 3 300
2 4 300
2 3 400
2 4 400
并实现它,以便最终数据集保留第一个表中行的原始顺序,然后是第二个表。