r - 如何将每个 4 列的 2 个数据框合并到一个矩阵中,每个单元格返回相交
问题描述
我有 2 个数据集,我想比较 2 个数据集之间的每一列并获取它们的相交。我该怎么做?我在下面有一个示例可以更好地解释我希望返回的内容。我正在与 Rstudio 合作。
dt1 =
col1 | col2 | col3 | col4 | col5 | col6 |
---|---|---|---|---|---|
狗 | 兔子 | 鸟 | 猪 | 狗 | 鸟 |
猫 | 龟 | 猫 | 兔子 | 兔子 | 狗 |
猪 | 鸟 | 狗 | 龟 | 龟 | 猪 |
dt2=
col1 | col2 | col3 | col4 | col5 | col6 |
---|---|---|---|---|---|
兔子 | 狗 | 狮子 | 龟 | 鱼 | 鸟 |
长颈鹿 | 鸟 | 猫 | 狗 | 虫 | 狗 |
猪 | 猫 | 猪 | 兔子 | 狗 | 猪 |
预期回报矩阵=
col1 | col2 | col3 | col4 | col5 | col6 |
---|---|---|---|---|---|
相交(dt1col1,dt2col1) | 相交(dt1col1,dt2col2) | 相交(dt1col1,dt2col3) | 相交(dt1col1,dt2col4) | 相交(dt1col1,dt2col5) | 相交(dt1col1,dt2col6) |
相交(dt1col2,dt2col1) | 相交(dt1col2,dt2col2) | 相交(dt1col2,dt2col3) | 相交(dt1col2,dt2col4) | 相交(dt1col2,dt2col5) | 相交(dt1col2,dt2col6) |
相交(dt1col3,dt2col1) | 相交(dt1col3,dt2col2) | 相交(dt1col3,dt2col3) | 相交(dt1col3,dt2col4) | 相交(dt1col3,dt2col5) | 相交(dt1col3,dt2col6) |
相交(dt1col4,dt2col1) | 相交(dt1col4,dt2col2) | 相交(dt1col4,dt2col3) | 相交(dt1col4,dt2col4) | 相交(dt1col4,dt2col5) | 相交(dt1col4,dt2col6) |
相交(dt1col5,dt2col1) | 相交(dt1col5,dt2col2) | 相交(dt1col5,dt2col3) | 相交(dt1col5,dt2col4) | 相交(dt1col5,dt2col5) | 相交(dt1col5,dt2col6) |
相交(dt1col6,dt2col1) | 相交(dt1col6,dt2col2) | 相交(dt1col6,dt2col3) | 相交(dt1col6,dt2col4) | 相交(dt1col6,dt2col5) | 相交(dt1col6,dt2col6) |
解决方案
尝试outer
> outer(dt1, dt2, FUN = Vectorize(function(x, y) toString(intersect(x, y))))
col1 col2 col3 col4 col5
col1 "pig" "dog, cat" "cat, pig" "dog" "dog"
col2 "rabbit" "bird" "" "rabbit, turtle" ""
col3 "" "bird, cat, dog" "cat" "dog" "dog"
col4 "pig, rabbit" "" "pig" "rabbit, turtle" ""
col5 "rabbit" "dog" "" "dog, rabbit, turtle" "dog"
col6 "pig" "bird, dog" "pig" "dog" "dog"
col6
col1 "dog, pig"
col2 "bird"
col3 "bird, dog"
col4 "pig"
col5 "dog"
col6 "bird, dog, pig"
推荐阅读
- python-3.x - PySerial Arduino 接收数据不正确
- php - 如何将云数据库与 phonegap 应用程序链接?
- amazon-web-services - Lambda 将发电机值返回为“UserId:[Object]”
- javascript - JavaScript 正则表达式:如何用仅在 2 个大括号内的换行符替换逗号?
- android - 如何将分页库与 groupe 库一起用于 recyclerView 以及在哪里放置过滤器语句?
- ini - 无法打开 ini 文件“omnetpp.ini”
- c# - 为什么在C#中调用Delegate.GetInvokationList后只打印一个方法名?
- wagtail - 鹡鸰片段不会迁移
- julia - 访问类型联合中的类型
- angular - 过滤 observable 对嵌套子数组对象的订阅响应