Более сложные объединения в dplyr - PullRequest
0 голосов
/ 31 мая 2018

В SQL вы можете выполнять объединения, используя такие команды, как:

select x.var1, y.var2
from x left join y
on substring(x.var1, 1, 5) = y.var2;

Можете ли вы выполнять аналогичные операции с переменными в dplyr (в R) при выполнении объединений, или же эти объединения должны выполняться с помощьютолько точные совпадения?

В одном комментарии предлагалось создать промежуточные переменные, но я хотел знать, есть ли способ обойти это.

(отредактировано в операторе, чтобы сделать его более понятным)

1 Ответ

0 голосов
/ 31 мая 2018

Трудно быть точным без воспроизводимого примера, но в dplyr вы можете получить эффект, аналогичный вашему SQL-запросу с этим кодом, включив операцию подстроки в переданный по мутированию перед объединением.Примерно так: (фиктивные данные, конечно, бессмыслица)

x <- data.frame(n = c("00000000000", "111111111"), var1 = 1:2)
y <- data.frame(name= as.character(c("00000", "11111")), var2=3:4)


df <- x %>% 
  mutate(name = substr(n, 1,5)) %>%
  left_join(y, by="name") %>%
  select(var1,var2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...