如何匹配R中不同数据集中的多个列
我需要通过匹配studentdata和tutordata中的科目和黑板来获取教师姓名。 代码-- 学生数据如何匹配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
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'))