ColumnwiseCombine[{tab1,…}ckey]
通过连接所有在每个表对象 tabi 中键为 ckey 的列上具有相同值的行组合来合并 Tabular 对象 tab1,….
ColumnwiseCombine[{tab1,…}{ckey1,ckey2,…}]
合并键为 ckeyj 的列值相同的所有行的组合.
ColumnwiseCombine[{tab1ckey1,tab2ckey2,…}]
连接 tabi 中键为 ckeyi 的列上具有共同值的行.
ColumnwiseCombine[<|p1tab1,p2tab2,…|>]
在结果中使用 ExtendedKey[pi,ckeyij] 作为表格 tabi 中列键为 ckeyij 的前缀.
ColumnwiseCombine[<|p1tab1,p2tab2,…|>tfun]
包含所有满足 tfun[<|p1tab1[j1], p2tab2[j2], …|>] 为 True 的行组合,其中 1≤j1≤Length[tab1],1≤j2≤Length[tab2],….
ColumnwiseCombine[tabs,required]
必要时通过与其他 Tabular 对象的缺失元素行组合,包含由 required 指定的 Tabular 对象中的所有行.
ColumnwiseCombine
ColumnwiseCombine[{tab1,…}ckey]
通过连接所有在每个表对象 tabi 中键为 ckey 的列上具有相同值的行组合来合并 Tabular 对象 tab1,….
ColumnwiseCombine[{tab1,…}{ckey1,ckey2,…}]
合并键为 ckeyj 的列值相同的所有行的组合.
ColumnwiseCombine[{tab1ckey1,tab2ckey2,…}]
连接 tabi 中键为 ckeyi 的列上具有共同值的行.
ColumnwiseCombine[<|p1tab1,p2tab2,…|>]
在结果中使用 ExtendedKey[pi,ckeyij] 作为表格 tabi 中列键为 ckeyij 的前缀.
ColumnwiseCombine[<|p1tab1,p2tab2,…|>tfun]
包含所有满足 tfun[<|p1tab1[j1], p2tab2[j2], …|>] 为 True 的行组合,其中 1≤j1≤Length[tab1],1≤j2≤Length[tab2],….
ColumnwiseCombine[tabs,required]
必要时通过与其他 Tabular 对象的缺失元素行组合,包含由 required 指定的 Tabular 对象中的所有行.
更多信息和选项
- ColumnwiseCombine 通常用于将多个 Tabular 对象合并为单个对象.
- 使用两个 Tabular 对象 tab1 和 tab2 时,ColumnwiseCombine 实际上相当于 SQL JOIN.
- 规范 required 用于从 {tab1,…,tabn} 中要求行,其内容包括:
-
{} or "Inner" 仅包含匹配的行 Range[n] or "Outer" 包含所有表格的所有行 1 or "Left" 包含第一个表格的所有行 n or "Right" 包含最后一个表格的所有行 {i1,i2,…} 包含表格 tabii,tabi2,… 中的所有行 {pi1,pi2,…} 使用前缀来标识表格 - ColumnwiseCombine[p1tab1,p2tab2,…|>(True&)] 生成交叉联接.
范例
打开所有单元 关闭所有单元基本范例 (4)
范围 (17)
匹配键 (2)
所需行数 (8)
这是默认设置,同时也等价于不要求必须包含 tab1 或 tab2 的所有行:
包含 tab1 和 tab2 中所有行的实例. 如果没有匹配,则用缺失值填充:
使用参数 {2,1} 时,tab2 中未匹配的行会被放在 tab1 中未匹配的行之前:
使用 "Left" 进行指定是等价的,因为 tab1 是列表中最左边的:
使用 "Right" 来指定是等价的,因为 tab1 是列表中最左边的:
仅包含来自三个 Tabular 对象的行组合,这些组合中,列 "a" 的值匹配:
包含来自三个 Tabular 对象的所有行的一个实例:
展示对于三个 Tabular 对象,获取所需行的所有可能规范的结果:
当没有匹配项时,使用 "Outer" 会有效地将 Tabular 对象叠加在一起:
这相当于使用 Join:
关键前缀与冲突 (2)
使用与 Association 一起提供的键前缀是必要的,因为列 "b" 存在冲突,其对应的值并不匹配:
当匹配列名通过特定的 Tabular 对象给出时,匹配到的列会以带前缀的名称包含在内:
包含来自两个 Tabular 对象的所有行,在列 "b" 的值匹配时合并这些行组合:
当匹配的列名以特定的 Tabular 对象给出时,匹配到的列将以带前缀的名称包含在内,并且在没有匹配时将包含缺失元素:
匹配测试函数 (5)
对三个 Tabular 对象进行交叉联接(即任意行的组合都视为匹配并被包含):
指定来自 tab1 的列 "a" 或 tab2 的列 "c" 的值相同:
该函数接收每个可能行组合的单一参数;对于来自 tab1 的第 i 行和来自 tab2 的第 j 行,参数是一个由 Association 对象组成的列表 {Normal[tab1[i]],Normal[tab2[j]]}:
使用 Apply 时,该函数获得两个参数,并且可以使用位置参数:
当第一个参数为一个关联时,该函数会接收一个 Association 参数:
查找在列 "a" 的值相同且列 "b" 的值长度也相同的行组合:
查找在列 "a" 的数值奇偶性与列 "b" 的数值奇偶性相反的行组合:
包含在 tab1 和 tab2 中的列 "a", tab1 中的列 "c" 以及 tab3 中的列 "b" 中存在匹配项的所有行组合:
应用 (2)
属性和关系 (4)
当没有匹配项时,使用 "Outer" 实际上是将 Tabular 对象进行合并:
这相当于使用 Join:
当只有两个 Tabular 对象且没有列冲突时,ColumnwiseCombine 和 JoinAcross 执行相同的操作:
当存在键冲突时,JoinAcross 会使用一个键冲突函数(默认左侧):
使用 ColumnwiseCombine 时,如果没有键前缀,不允许键冲突:
比较三元 ColumnwiseCombine 与嵌套的 JoinAcross:
当列名一致且不需要额外的行时,这与 ColumnwiseCombine 一致:
ColumnwiseCombine 实质上是行的外积:
创建一个带有合并列的 Tabular 对象:
使用 ExtendedKey 可以得到与 ColumnwiseCombine 相同的结果:
参见
相关指南
-
▪
- 表格转换
文本
Wolfram Research (2025),ColumnwiseCombine,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ColumnwiseCombine.html.
CMS
Wolfram 语言. 2025. "ColumnwiseCombine." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ColumnwiseCombine.html.
APA
Wolfram 语言. (2025). ColumnwiseCombine. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ColumnwiseCombine.html 年
BibTeX
@misc{reference.wolfram_2025_columnwisecombine, author="Wolfram Research", title="{ColumnwiseCombine}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ColumnwiseCombine.html}", note=[Accessed: 29-April-2026]}
BibLaTeX
@online{reference.wolfram_2025_columnwisecombine, organization={Wolfram Research}, title={ColumnwiseCombine}, year={2025}, url={https://reference.wolfram.com/language/ref/ColumnwiseCombine.html}, note=[Accessed: 29-April-2026]}