【发布时间】:2016-08-10 07:52:49
【问题描述】:
我正在尝试用适当的成绩点替换美式字母成绩。例如,A 变为 4.0,A- 变为 3.7,B+ 变为 3.3,等等。
我似乎无法正确使用 sub 来获得正则表达式来进行更改。例如,我无法让它识别 B、B+ 和 B- 都是独立的东西,可能是因为我无法让它正确地表达正则表达式。
【问题讨论】:
-
第一条评论here
我正在尝试用适当的成绩点替换美式字母成绩。例如,A 变为 4.0,A- 变为 3.7,B+ 变为 3.3,等等。
我似乎无法正确使用 sub 来获得正则表达式来进行更改。例如,我无法让它识别 B、B+ 和 B- 都是独立的东西,可能是因为我无法让它正确地表达正则表达式。
【问题讨论】:
创建一个查找表怎么样?
假设您的成绩不高,您可以创建自己的查找表,例如
lookup <- read.table(text = "Grade GradePoint
A 4.0
A- 3.7
B+ 3.3
B 3.0
B- 2.7", header = T)
创建一些示例数据
grades <- read.table(text = "Grade
A
B+
B-", header = T)
现在您可以使用merge 将成绩替换为分数。
merge(lookup, grades, by = "Grade")[2]
# GradePoint
#1 4.0
#2 2.7
#3 3.3
你也可以使用match 达到同样的效果
lookup[match(grades$Grade, lookup$Grade), ][2]
【讨论】: