用定义的映射用 R 中的字符列替换数字列
replace a numerical column by a character column in R with a defined mapping
我进行了一些搜索,但找不到问题的答案。
假设我有一个数据框,其中有一个整数列 student_id
和其他一些列。我还有另一个包含两列的映射 table,第一列是 student_id
,第二列是字符串形式的 student_name
。用 student_name
替换 student_id
列的最佳方法是什么?请注意,映射 table 是唯一的,但数据框可以有多个相同的学生 ID。
如果有帮助,我正在使用 dplyr
和 tidyr
包。
让我们说 grades
是你的 data.frame,其中包含学校提供的每个 class 的每个成绩的记录,其中包含字段(年级、学生 ID、class 编号) 过去 10 年,roster
是一个列表,每个学生有一条记录,其中包含同一时间段内就读该学校的所有学生的姓名和 ID。
名册上每个学生有一条记录,成绩上每个学生有多条记录。
您可以通过调用
使用 dplyr 从花名册中推送学生姓名
library(dplyr)
gradesWithStudentNames <-
grades %>%
left_join(select(roster,studentID,studentName),
by=`studentID')
左连接将包括 table grades
的每一行,即使 roster
中没有匹配的学生(在这种情况下学生姓名将丢失)。使用 inner_join
将省略此类记录,而 outer_join
将包括 roster
中未参加任何 class 课程的学生的记录(class 的值缺失编号和年级)。
我建议阅读标题为 'Two-table Verbs' 的小插图,它描述了各种连接,可以使用 browseVignettes('dplyr')
找到
我进行了一些搜索,但找不到问题的答案。
假设我有一个数据框,其中有一个整数列 student_id
和其他一些列。我还有另一个包含两列的映射 table,第一列是 student_id
,第二列是字符串形式的 student_name
。用 student_name
替换 student_id
列的最佳方法是什么?请注意,映射 table 是唯一的,但数据框可以有多个相同的学生 ID。
如果有帮助,我正在使用 dplyr
和 tidyr
包。
让我们说 grades
是你的 data.frame,其中包含学校提供的每个 class 的每个成绩的记录,其中包含字段(年级、学生 ID、class 编号) 过去 10 年,roster
是一个列表,每个学生有一条记录,其中包含同一时间段内就读该学校的所有学生的姓名和 ID。
名册上每个学生有一条记录,成绩上每个学生有多条记录。
您可以通过调用
使用 dplyr 从花名册中推送学生姓名library(dplyr)
gradesWithStudentNames <-
grades %>%
left_join(select(roster,studentID,studentName),
by=`studentID')
左连接将包括 table grades
的每一行,即使 roster
中没有匹配的学生(在这种情况下学生姓名将丢失)。使用 inner_join
将省略此类记录,而 outer_join
将包括 roster
中未参加任何 class 课程的学生的记录(class 的值缺失编号和年级)。
我建议阅读标题为 'Two-table Verbs' 的小插图,它描述了各种连接,可以使用 browseVignettes('dplyr')