JoinAcross

JoinAcross[{a1,a2,},{b1,b2,},key]

通过连接关联 aibj 对(其中与 key 相关联的数值相同),给出得到的关联列表.

JoinAcross[{a1,a2,},{b1,b2,},{key1,key2,}]

只有当与所有键值 keyi 相关联的数值相同时,连接关联对.

JoinAcross[{a1,a2,},{b1,b2,},keyakeyb]

连接关联 aibj 对,其中 ai 中与 keya 相关联的数值与 bj 中与 keyb 相关联的数值相同.

JoinAcross[{a1,a2,},{b1,b2,},{keya1keyb1,}]

将相应的数值一致的关联合并在一起.

JoinAcross[alist,blist,keyspec,"joinspec"]

使用 joinspec 判断什么时候允许产生包含缺失元素的关联.

更多信息和选项

  • JoinAcross[{a1,a2,},{b1,b2,},keyspec] 实际上实现了 SQL JOIN,将按照 keyspec 指定逐列将两个表格的行 aibj 连接.
  • 除非是字符串,否则 JoinAcross 中的键值指定必须封装在 Key 中.
  • JoinAcross 实际上产生 Flatten[Outer[Join,alist,blist]] 的过滤版本.
  • 默认情况下,JoinAcross 在 SQL 语句中进行内连接.
  • "joinspec" 的下列格式指定相关性对 aibj 的不同行为:
  • "Inner"只保持数值匹配的 aibj(默认)
    "Left"允许找不到匹配的 bjai
    "Right"允许找不到匹配的 ajbi
    "Outer"允许 aibj 都不匹配
  • 当不出现相应的数值时,Missing["Unmatched"] 用于相应位置.
  • 可以给出选项 KeyCollisionFunction 以指定如何处理未指定连接的 aibj 元素,但是具有相同的键.
  • KeyCollisionFunction 的可能设置包括:
  • None删除两个元素
    Left只包含左元素(默认)
    Right只包含右元素
    func应用 func 以产生一对新键

范例

打开所有单元关闭所有单元

基本范例  (11)

连接对于特定键具有相同数值的两个关联:

使用指定键的相同数值连接相关性的对:

使用一些键值连接:

通过不同的键值在左边和右边连接:

设置 "Inner" 连接(默认),只合并匹配的相关性:

设置 "Left" 连接,包括来自左侧列表的未匹配的项目:

设置 "Right" 连接,包括来自右侧列表的未匹配的项目:

设置 "Outer" 连接,包括所有未匹配的项目:

当匹配键 b 不用于连接时,默认下挑选该键的左值:

使用 KeyCollisionFunction 指定应该返回冲突键的哪些数值:

产生新键,而非冲突的键:

忽略冲突的键:

应用  (1)

可能存在的问题  (1)

ab 有冲突,尽管如此,还是利用它们进行连接:

在键有冲突的情况下,默认取左侧的值:

指定冲突键使用哪些数值:

对冲突键,专门挑选右值:

Wolfram Research (2014),JoinAcross,Wolfram 语言函数,https://reference.wolfram.com/language/ref/JoinAcross.html (更新于 2015 年).

文本

Wolfram Research (2014),JoinAcross,Wolfram 语言函数,https://reference.wolfram.com/language/ref/JoinAcross.html (更新于 2015 年).

CMS

Wolfram 语言. 2014. "JoinAcross." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2015. https://reference.wolfram.com/language/ref/JoinAcross.html.

APA

Wolfram 语言. (2014). JoinAcross. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/JoinAcross.html 年

BibTeX

@misc{reference.wolfram_2024_joinacross, author="Wolfram Research", title="{JoinAcross}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/JoinAcross.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_joinacross, organization={Wolfram Research}, title={JoinAcross}, year={2015}, url={https://reference.wolfram.com/language/ref/JoinAcross.html}, note=[Accessed: 22-November-2024 ]}