dplyr занести в оба столбца, по которым производится соединение - PullRequest
0 голосов
/ 27 ноября 2018

скажем, у меня есть эти два набора данных, каждый из которых имеет один столбец, скажем, Имя и Имя.Я хочу применить левое объединение и увидеть результаты так, чтобы результирующая таблица отображалась как FirstName (из левой таблицы), Name (из правой таблицы), а соединение слева - FirstName = Name.

Проблема, с которой я сталкиваюсь, состоит в том, что конечный результат left_join - это один столбец, который является FirstName, тогда как я хочу видеть столбец, к которому также был присоединен.Любая идея, как этого добиться?

t1 <- data.frame(FirstName= c('a','b','c','d'))
t2 <- data.frame(Name= c('a','b','c'))

library(dplyr)
t1%>%
  left_join(t2, c('FirstName'  = 'Name'))

, как вы видите результат выше, это один столбец, который является Firstname.он автоматически опускает столбец Имя из другой таблицы, и это то, что я не хочу, чтобы он делал.

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете создать копию столбца имени перед присоединением

t1 <- data.frame(FirstName= c('a','b','c','d'), stringsAsFactors = FALSE)
t2 <- data.frame(Name= c('a','b','c'), stringsAsFactors = FALSE)

library(dplyr)
t1 %>%
  left_join(mutate(t2, Name2 = Name), c('FirstName'  = 'Name2'))
#  FirstName Name
#1         a    a
#2         b    b
#3         c    c
#4         d <NA>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...