2016-08-10 23 views
-1

アメリカのスタイルの文字のグレードを適切なグレードのポイントに置き換えようとしています。たとえば、Aは4.0、A-は3.7、B +は3.3などになります。特殊文字を含むRの文字を置換する

変更を加えるためにsubを使って正規表現を正しく取得できないようです。私はB、B +、B-が別々のものであることを認識するのが難しいです。おそらく正規表現を正しく作ることができないからです。

+3

[こちら]最初のコメント(http://stackoverflow.com/questions/38406236/shorter-method-to-replaceでmatchを使用することができます-ent-in-r) –

答えて

0

ルックアップテーブルの作成はどうですか?あなたは多くのグレードを持つことがないであろうと、

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 

また、同じ効果

lookup[match(grades$Grade, lookup$Grade), ][2] 
関連する問題