【发布时间】:2019-12-14 12:02:03
【问题描述】:
我有一大组 id-s,它们位于 csv 文件中。如何仅使用 csv 文件中的单列表过滤数据库表?
例如在 ODBC 数据库中我们有:
表 1
+---------+------+
| ID | TYPE |
+---------+------+
| 43PRJIF | A |
| 35IRPFJ | A |
| 452JSU | B |
| 78JFIER | B |
| 48IRUW | C |
| 89UEJDU | C |
| 784NFJR | D |
| 326NFR | D |
| 733ZREW | E |
+---------+------+
在 CSV 文件中我们有:
+---------+
| ID |
+---------+
| 89UEJDU |
| 784NFJR |
| 326NFR |
| 733ZREW |
+---------+
如果可能的话,基本上我想使用 dbplyr 包中的一些东西。例如,将 csv 表导入数据框,然后在 dbplyr 中使用如下语法:
new_table <- TABLE1 %>%
filter(id == "ROWS IN THE CSV")
要获得这样的输出:
+---------+------+
| ID | TYPE |
+---------+------+
| 89UEJDU | C |
| 784NFJR | D |
| 326NFR | D |
| 733ZREW | E |
+---------+------+
提前感谢您的帮助!
【问题讨论】:
-
这不就是
dplyr::inner_join(table1, table2)吗?或merge(table1, table2) -
但表 1 在 ODBC 表中。
-
另一种选择,只需
table1 %>% filter(id %in% table2$id) -
这能回答你的问题吗? Filtering a data frame by values in a column