Создать новую переменную из условия на 2 таблицы удаленных БД

У меня в моей базе данных PostgreSQL две отдельные таблицы:

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 ответ

Кажется, есть проблема 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

Другие вопросы по тегам