我做了一些搜索,但找不到我的问题的答案。
假设我有一个数据框,其中包含student_id
整数列和其他一些列。我还有另一个包含两列的映射表,第一列是字符串student_id
,第二列student_name
是字符串。student_id
用 替换色谱柱的最佳方法是student_name
什么?注意映射表是唯一的,但是数据框可以有多个相同的学生id。
如果有帮助,我正在使用dplyr
和tidyr
打包。
假设grades
是您的 data.frame,其中包含过去 10 年学校提供的每个班级授予的每个年级的记录,其中包含字段(年级、学生 ID、班级编号),并且roster
是一个列表,每个学生都有一个记录,其中包含所有姓名以及同一时间段就读该校学生的身份证。
Roster 每个学生有一个记录,而 Grades 每个学生有多个记录。
您可以通过调用 dplyr 从名册中推送学生姓名
library(dplyr)
gradesWithStudentNames <-
grades %>%
left_join(select(roster,studentID,studentName),
by=`studentID')
grades
即使没有匹配的学生,左连接也将包括表的每一行roster
(在这种情况下,学生姓名将丢失)。usinginner_join
将省略此类记录,outer_join
并将包括roster
未参加任何课程的学生的记录(缺少班级编号和年级的值)。
我建议阅读标题为“双表动词”的小插图,它描述了各种连接,可以使用browseVignettes('dplyr')