从2个远程DB表的条件创建新变量

时间:2018-04-28 11:06:39

标签: r dplyr r-dbi dbplyr

我在PostgreSQL DB中有两个单独的表:

table_a <- tbl(con, "table_a")

table_b <- tbl(con, "table_b")

我想创建一个像这样的新变量:

table_c <- table_a %>%
mutate(variable_a = ifelse(a %in% table_b$a & table_b$b == 100, TRUE, FALSE)

但是我收到了与table_b$a

相关的错误消息
Error in result_create(conn@ptr, statement) : 
  Failed to prepare query: ERROR:  syntax error at or near ")"
LINE 1: [...] CASE WHEN ("a" IN () AND  = 2...
                                 ^

1 个答案:

答案 0 :(得分:0)

converting句到%in,似乎存在问题dplyr sqlquery。使用query编写相同left_join的另一种方法可以是:

table_c <- table_a %>% left_join(table_b, by="a") %>%
mutate(variable_a = ifelse( !is.na(b) & b == 100, TRUE, FALSE))

注意:我们假设b列只是table_b的一部分,否则必须将其称为table_b.y