2017-06-09 3 views
0

Rの任意の1文字をどのように参照できますか?私の場合は、3つの文字になります。私はその力で圧倒されるので、多くの助けになります!)私の場合、私はpos 25-27の3文字を "XXX"で置き換える必要があります。私はこのコードを使用して特定の文字を置換し、abcの代わりに%、*を使用しようとしました。ここでのTxずっとR置換サブのRワイルドシングルキャラクタ

d <- c("alpha 1 bravo 0 charlie_abc v3") 
sub("^(.{24})abc", "\\1XXX", d) 
    [1] "alpha 1 bravo 0 charlie_XXX v3" 

答えて

3

がパターン"^(.{24}).{3}"またはsubstringを使用してを使用して2つの方法で、以下のとおりです。

d <- c("alpha 1 bravo 0 charlie_abc v3") 
sub("^(.{24}).{3}", "\\1XXX", d) 
#> [1] "alpha 1 bravo 0 charlie_XXX v3" 

d <- c("alpha 1 bravo 0 charlie_abc v3") 
substring(d, 25, 27) <- "XXX" 
d 
#> [1] "alpha 1 bravo 0 charlie_XXX v3" 
+1

私はsubstring'はここにはるかに優れた選択肢である '、それははるかに直接的に、そしておそらくはるかんだと思います効率的に使用するよりも、非常に意味のない正規表現になります。 – Marius

+0

@マリアス、私は当初、「部分文字列」も高速だと考えました。しかし、私がベンチマークをするとき、私は2つの方法の速度が似ていることに驚いた。 – mt1022

+0

Tx MTとMarius。 –