-2

我做了一些搜索,但找不到我的问题的答案。

假设我有一个数据框,其中包含student_id整数列和其他一些列。我还有另一个包含两列的映射表,第一列是字符串student_id,第二列student_name是字符串。student_id用 替换色谱柱的最佳方法是student_name什么?注意映射表是唯一的,但是数据框可以有多个相同的学生id。

如果有帮助,我正在使用dplyrtidyr打包。

4

1 回答 1

0

假设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')

于 2015-02-01T08:13:49.533 回答