Создать новую переменную из условия на 2 таблицы удаленных БД - PullRequest
0 голосов
/ 28 апреля 2018

В моей базе данных 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 Ответ

0 голосов
/ 28 апреля 2018

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

...