Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何匹配R中不同数据集中的多个列_R_Match_Matching - Fatal编程技术网

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

如何匹配R中不同数据集中的多个列,r,match,matching,R,Match,Matching,我需要通过匹配studentdata和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

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

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

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

library(dplyr)

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

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

“我需要获取”和“代码--”不建议出现任何问题,包括实际的警告、错误或数据损坏,这有助于澄清问题。查看您的数据,这里没有匹配项:只有一个
IB
,它既是一个子字符串(所以不“只是”
IB
),也不与
Math
位于同一行。您的数据可以得到改进,以便实际上存在匹配项,或者您需要更好地解释在这种情况下“获取”对您意味着什么。(提示:我正在考虑一种形式的
merge
dplyr::*\u join
可能会起作用,但它似乎同样不正确。)对于这种输入,您的预期输出是什么?对于这个模糊的问题,很抱歉。我已经编辑了这个问题,你现在能帮忙吗?我很高兴你得到了一个可以接受的答案。当你问另一个问题时,最好也包括你的预期结果,以帮助确认/验证其他人是否理解你的问题。很抱歉,信息含糊不清。我现在编辑了这个问题。问题是因为导师委员会是一个因素,我现在不知道如何解析数据。我在下面附上了输出和输入的图像。对不起,R程序的新成员否。即使存在匹配,也不匹配。学生rehana获得NA作为导师,尽管有一场比赛。如何解析一个因子?
library(dplyr)

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