温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - how do i match multiple column from different dataset in R

其他 - 我如何匹配R中不同数据集的多列

发布于 2020-03-27 16:07:19

我需要通过匹配来自Studentdata和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

学生资料

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

所有变量都是上述数据集中的因子。

查看更多

查看更多

提问者
Kiku Sekar
被浏览
14
Ronak Shah 2020-01-31 17:46

可能您可以尝试将TBoard拆分为单独的行,然后进行联接。

library(dplyr)

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

但是,您的数据似乎没有任何匹配项。

发布
问题

分享
好友

手机
浏览

扫码手机浏览