我如何将一列从一个表合并到另一个表的列失踪的条目吗?

70(30天)
我有两个表的列的名称和不同的行数。第三列的表例如缺少一些条目出现在第2列的表我想添加丢失的条目从B到另一列中的值的基础上,认为第2列的表A。然而,并不是所有相同的条目出现在两个表的关键。
例如,两个表是这样的:
=表({“约翰”,“简”,“吉姆”,“杰瑞”,“吉尔”}”,[1,2;1;3,1],{”、“,”、“垫”“}”,…
VariableNames,{“员工”“部门”,“经理”})
2 B =表([1],{“玛丽”“迈克”},…
VariableNames,{“部门”“经理”})
如果我尝试使用“连接”功能,我得到一个错误,因为有更多的部门A比B。
> >加入(A, B)
错误使用表/加入(第128行)
A和B的关键变量不能包含任何缺失的值。
我怎么能这样做呢?

接受的答案

MathWorks支万博1manbetx持团队
有两个可能的解决方案取决于你期望看到的输出:万博 尤文图斯
1。使用“outerjoin”
使用“outerjoin”功能和指定变量的“钥匙”使用合并表生成的输出:
(A, B, C = outerjoin“键”,“部门”,“MergeKeys”, 1)
2。使用“ismember”
使用“ismember”函数来确定匹配的行A和B和添加缺失的条目从B生成的输出:
[idxA, idxB] = ismember (A。部门,B.Department);
(idxA“经理”)= B (idxB (idxA),“经理”);

更多的答案(2)

金立群
金立群 2015年4月30日
我有一个类似的问题,假设我有a和B表如下:
=表([1,2,3,4,5,6,7,8,9],[2、4、6、8、10、12、14、16、18),“VariableNames”,{' x ' ' y '})
一个=
xy
___
1 2
2 4
3个6
4 8
5 10
6日12
7日14
8 16
9日18
B =表(1,3,5,7,(1;9、25、49),“VariableNames”,{“x”“z”})
B =
xz
___
1
3个9
5 25
7 49
我怎么能得到下面的表C ?
C =
xyz
______
1 2 1
2 4
3 6 9
4 8
5 10 25
6日12
7 14 49
8 16
9日18
2的评论
亚当拥抱
亚当拥抱 2015年7月13日
嗨Liquen,
在每个条目表需要值。在你的情况下,所有条目需要有一个数值。对于那些数字条目定义执行“outerjoin”之后,MATLAB填充NaN值。使用一个表的数据结构的重点是组织数据以统一的方式。如果你不希望NaN值被添加,您可能希望考虑使用一个细胞数组来存储你的数据。
亚当

登录置评。


标签

没有标签了。

s manbetx 845


释放

R2014b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!