仅考虑 Matlab 中的公共行值按键合并数据表

Merge data tables by key considering only common row values in Matlab

仅对公共行通过Keys连接2个数据表

我想通过合并选定的键来加入 2 个数据库,但只保留共同的值。

例如有如下数据表:

A = table({'a';'a';'b';'b';'c';'c'},...
[1;2;3;4;5;6],...
{'G1';'G2';'G1';'G2';'G1';'G2'},...
'VariableNames',{'ID','Value','Group'})


B = table({'a';'a';'b';'b';'d';'d'},...
[7;8;10;9;11;12],...
{'G1';'G2';'G2';'G1';'G1';'G2'},...
'VariableNames',{'ID','Value','Group'})

我用外连接函数连接数据表如下:

C = outerjoin(A,B, 'Keys', {'ID' 'Group'}, 'MergeKeys', 1)

在输出 C 中,'c' 和 'd' ID 仍将显示为 NA' 值。我正在寻找仅包含公共值的输出(即排除包含 'c' 和 'd' ID 的行)

您需要使用innerjoin函数

C = innerjoin(A,B, 'Keys', {'ID' 'Group'})