2017-04-10 29 views
1

Rの因子ラベルである4つの数字でエンコードされた郵便番号を比較したいと思います。問題は、1つの形式では、これらのコードの4桁目は常に0であり、私は1010だけでなく1012,1015も持っていますが、それらはすべて同じ意味です。したがって、私は完全な郵便番号を読んで、第4桁として「標準コード」を0に置き換えたいと思います。私は最後の数字は、正規表現を使用して、ベクターv2のように見えるように置き換えるベクトルv1上記と体系のように、すべての因子レベルを読み取ることができますどのように正規表現一致番号R

v1 <- c(,"1011", "1015", "1017","1207","1209") 
v2 <- c("1010","1200") 

+0

'unique(paste0(substring(v1,1,3)、" 0 "))' – count

+0

最初の3桁のみを参照している場合、4桁目を失うのはなぜですか?たとえば、v2 < - as.factor(substr(v1、1、3)) '? – ulfelder

答えて

0

あなたは使用してベクトルの最初の3つの要素を取得します:

Three.str <- substr(v1, 1,3) 

をので、あなたはすべての要因を使用して"101"で始まる変更することができますように

v1[Three.str=="101"] <- "1010" 

とを対応体系化してあなたは使いたい。

+0

ありがとう!私は今、最初の3つの数字とplzlab < - unique(paste0(Three.str、 "0"))を得るためにThree.str < - substr(vec1,1,3)を追加しました! – alex2006

+0

はい、私は最初の2つの文字列に対してinitaillyしたので、答えを修正しました。だから私はそれを 'Two.str'と呼んだ – R18