【发布时间】:2018-05-14 19:23:33
【问题描述】:
想象一下,我有一个 LARGE 表 (table1),看起来与下面的相似。
表 1:
YEAR MODEL MAKE ORDERCODE COLOR
2001 BMW 328i FAE GREEN
2001 BMW 328i SDC BLACK
2001 LEXUS LS430 ASD PURPLE
2001 LEXUS IS300 ASD BLACK
2001 LEXUS GS300h YUK BLACK
2001 LEXUS GS300h HNY BLUE
2002 LEXUS GS300h ASF PURPLE
2002 LEXUS GS300h FAS BROWN
2002 LEXUS GS300h YUI RED
2002 LEXUS IS250d ZXC ORANGE
2002 LEXUS IS250d ASE BLUE
我有另一个数据框,它有另一个品牌(假设它是一个雅阁,有黑色、蓝色、紫色和红色),所以它看起来像这样:
表 2:
MAKE COLOR
Accord BLACK
Accord RED
Accord BLUE
Accord PURPLE
我正在尝试查找表 1 中具有表 2 中所有颜色的所有汽车。我已经尝试使用 dplyr table1 %>% filter(COLOR %in% table2$COLOR),但我返回的任何行至少具有我正在寻找的给定颜色之一。我想返回具有我指定颜色的汽车制造的行。所以我的结果是这样的:
期望的结果:
2001 LEXUS GS300h YUK BLACK
2001 LEXUS GS300h HNY BLUE
2002 LEXUS GS300h ASF PURPLE
2002 LEXUS GS300h FAS BROWN
2002 LEXUS GS300h YUI RED
【问题讨论】:
-
所以从 table2 中 make 列并不重要。您只想检查表 2 中每个型号的表 1 中的所有颜色值。我理解对了吗?
-
没有测试,但是你可以修改你的代码为
table1 %>% group_by(MODEL, MAKE) %>% filter(all(COLOR %in% table2$COLOR)) -
@Yolo。 Table2 中的make 列是我最感兴趣的。我想在table2 中找到与table1 中的make 最相似的Make。我通过匹配颜色来定义相似性。
-
@DavidArenburg - 感谢您的建议。我试过了,但我最终只得到了一排。在我的真实数据集中,我只有 1 个键(Make),因此按模型分组没有帮助。
-
对不起,我之前没有测试过代码,试试这个
table1 %>% group_by(MODEL, MAKE) %>% filter(all(table2$COLOR %in% COLOR))
标签: r dplyr data.table