matlab - Matlab`outerjoin`:如何为`Keys`指定`RowNames`
问题描述
Matlab 的文档outerjoin
说“行标签”可用于Keys
. 它不提供这样做的语法。我的尝试没有成功:
>> A=table([1;2],'VariableNames',{'Av1'},'RowNames',{'hot','dog'})
A =
Av1
___
hot 1
dog 2
>> B=table([3;4],'VariableNames',{'Bv1'},'RowNames',{'hot','dog'})
B =
Bv1
___
hot 3
dog 4
>> outerjoin(A,B)
Error using table/outerjoin (line 114)
Cannot find a common table variable to use as a key variable.
>> outerjoin(A,B,'Keys','RowNames')
Error using table/outerjoin (line 114)
Unrecognized variable name 'RowNames'.
我想知道如何解释文档。任何帮助,将不胜感激。
后记
似乎文档缺少的不仅仅是如何RowNames
指定Keys
. 它也没有描述默认键。从测试来看,默认键似乎是具有匹配名称的列:
A=array2table( [ 1 1 10; 1 2 20; 2 1 1; 2 2 20],...
'VariableNames',{'k1','k2','d'} )
B=array2table( [ 1 1 100; 1 2 200; 2 1 1; 2 2 200],...
'VariableNames',{'k1','k2','d'} )
outerjoin(A,B,'MergeKeys',true)
A =
k1 k2 d
__ __ __
1 1 10
1 2 20
2 1 1
2 2 20
B =
k1 k2 d
__ __ ___
1 1 100
1 2 200
2 1 1
2 2 200
ans =
k1 k2 d
__ __ ___
1 1 10
1 1 100
1 2 20
1 2 200
2 1 1
2 2 20
2 2 200
A=array2table( [ 1 1 10; 1 2 20; 2 1 1; 2 2 20],...
'VariableNames',{'k1','k2','d'} )
B=array2table( [ 1 1 100; 1 2 200; 2 1 1; 2 2 200],...
'VariableNames',{'k1','k2','e'} )
outerjoin(A,B,'MergeKeys',true)
A =
k1 k2 d
__ __ __
1 1 10
1 2 20
2 1 1
2 2 20
B =
k1 k2 e
__ __ ___
1 1 100
1 2 200
2 1 1
2 2 200
ans =
k1 k2 d e
__ __ __ ___
1 1 10 100
1 2 20 200
2 1 1 1
2 2 20 200
解决方案
TMW 通过引用在线文档“ Use Row Labels as Grouping or Key Variables ”提供了答案。如果指定了关键字,则表RowNames
将用作参数。 指第一个维度的名称而不是实际字段。Keys
Row
Row
上述解决方案仅适用于 R2016b 以后。早期版本的解决方案是复制RowNames
到实际字段,然后使用该字段作为Keys
参数。
推荐阅读
- .net - 为什么 C# Google.Cloud.Firestore 库无法与企业 MITM 防火墙连接?
- amazon-web-services - 托管在 Amazon S3 存储桶中的静态 Web 应用程序突然无法正常工作
- java - Spring Batch中的多线程步骤和本地分区有什么区别?
- amazon-sqs - SqsListner 不听消息
- javascript - 如何使用nodejs调用需要输入参数的bat文件并跳过暂停
- python - 如何在 Windows 10 中启动 mongodb
- html - 使用 flex 在 bootstrap 4 中浮动 2 个 div
- python - while循环覆盖结果
- elasticsearch - Kibana 中 logstash 监控的主机名不正确
- javascript - Ant Design 表格搜索定制