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

问题描述 投票:-1回答:1

我需要通过匹配来自Studentdata和Tutordata的科目和董事会来获取教师姓名。代码-

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

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

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

r match matching
1个回答
0
投票

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

library(dplyr)

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

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

© www.soinside.com 2019 - 2024. All rights reserved.