Извлечение значений из двух фреймов данных на основе одного столбца идентификатора - PullRequest
1 голос
/ 05 октября 2019

Я хочу создать славу данных из значений в двух разных фреймах данных, содержащих одинаковые значения в столбце ID

Входные данные

df1<- data.frame(ID = c(102, 205, 333, 434, 512), Order1 = c("ball", 
"ball", "pen", "glass", "scale"))
df2 <- data.frame(ID = c(102, 205, 333, 434, 512), ActOrder1 = c("cap", 
"watch", "cup", "pen", "pencil"), ActOrder2 = c("cap", "fan", "phone", 
"NA",  "NA"))

для всех значений шара в столбце Order1из df1, я хочу извлечь значения в столбце ActOrder1 & Actorder2 из df2

Вывод

df3 <- data.frame(ID = c(102, 205), Order1 = c("ball", "ball"), 
ActOrder1 = c("cap", "watch"), ActOrder2 = c("cap", "fan") )

1 Ответ

1 голос
/ 05 октября 2019

Мы можем использовать left_join с filter

library(dplyr)
left_join(df1, df2, by = 'ID') %>%
   filter(Order1 == 'ball')  %>%
   select(names(df1), starts_with('ActOrder'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...