在R中,如何将字符(成绩)转换为数字并放入单独的列中

时间:2014-03-01 16:30:22

标签: r statistics

我在电子表格中有一个学生成绩列表,我想将成绩转换为数字。因此,例如,将“A”更改为“1”,将“C”更改为“3”。我希望它进入一个单独的专栏。

成绩变量名为“CRSE_GRADE_OFF”

我在Mac OS 10.8.5上运行Rstudio 0.98。

谢谢

1 个答案:

答案 0 :(得分:2)

通常,您可以使用命名向量来执行这些类型的映射操作:

students <- data.frame(name=c("J. Holly","H. Kally", "P. Spertson", "A. Hikh", "R. Wizht"),
                       CRSE_GRADE_OFF=c("A","D","E","A","A"))
scores = c(A=1, B=2, C=3, D=4, E=5, F=6)
students$grade <- scores[as.character(students$CRSE_GRADE_OFF)]
students
#          name CRSE_GRADE_OFF grade
# 1    J. Holly              A     1
# 2    H. Kally              D     4
# 3 P. Spertson              E     5
# 4     A. Hikh              A     1
# 5    R. Wizht              A     1

如果您想与Ben Bolker的as.numeric解决方案保持一致,您可以明确设置CRSE_GRADE_OFF因素的可能级别:

students$CRSE_GRADE_OFF <- factor(students$CRSE_GRADE_OFF,
                                  levels=c("A", "B", "C", "D", "E", "F"))
students$grade <- as.numeric(students$CRSE_GRADE_OFF)