Как мне сопоставить несколько столбцов из другого набора данных в R - PullRequest
0 голосов
/ 31 января 2020

Мне нужно получить имя учителя, сопоставив предмет и доску из данных ученика и tutordata. Код -

Studentdata$Tutor.name <- Tutordata[cbind(
  match(Studentdata$Subject, Tutordata$TSubject),
  match(Studentdata$Board, colnames(Tutordata))
)]

Тутордата

Tname TSubject TBoard
A     Physics   IB, IGCSE
B     Physics   CBSE,JEE mains
C     Math      JEE mains
D     Math      IGCSE
E     Physics   ICSE

StudentData

StudentName Board   Subject
X          IB       Math
Arjun      IB       Physics 
Rehana     IGCSE    Physics 
Rashid     CBSE     Math    
Ashika     JEE mainsMath    
Aagya      ICSE     Math

Все переменные являются факторами в вышеуказанный набор данных.

1 Ответ

0 голосов
/ 31 января 2020

Возможно, вы можете попытаться разбить столбец TBoard на отдельные строки, а затем выполнить объединение.

library(dplyr)

tidyr::separate_rows(Tutordata, TBoard, sep = ",") %>%
   mutate(TBoard = trimws(TBoard)) %>%
   right_join(StudentData, by = c('TBoard' = 'Board', 'TSubject' = 'Subject'))

Однако в ваших данных нет совпадений.

...