2016-12-29 9 views
0

正規表現には新しく、文字列の最初の2文字に基づいて単語全体を置き換えようとしています。たとえば、自動車というデータフレームとcarsという変数がある場合は、ホンダを日本語に置き換えたいと思います。最初の2文字を置き換えることはできますが、単語全体を置き換えることはできません。私がここで読んだことに基づいて、私が思いついたのはここですが、うまくいきません。私は間違って何をしていますか?regex - 最初の2文字に基づいて単語を置き換えます - R

automobiles$cars <- gsub(ignore.case=TRUE, "\\<^ho\\>", paste("ho", "Japanese"), automobiles$cars) 
+1

'dput(cars $ cars)'を使用して、データの表示方法を教えてください。 – G5W

答えて

2

これは、あなたが日本人」と「ホー」で始まるすべての文字列を置換する方法である:

> cars <- c("Honda", "Audi", "Ford") 

> cars 
[1] "Honda" "Audi" "Ford" 

> cars <- gsub("^Ho(.*)", "Japanese", cars, ignore.case = TRUE) 

> cars 
[1] "Japanese" "Audi"  "Ford" 

あなたのコードは、いくつかの非常に奇妙なものが含まれているので、私はあなたのデータ/質問は、より複雑であるかもしれないことを疑いますそれよりも。その場合はさらに説明してください。

キャッチは完全な文字列を選択する、^Ho(.*)ある文字列が始まる場合((.*)「は、以下のすべて」のためである)(^)」で"。

+0

が動作します。ありがとうございます。私が言ったように、私は正規表現には新しく、ここや他のオンラインリソースで読んだことに基づいて解決策をまとめるつもりだった。私は(。*)は最初の2文字だけではなく、単語全体を置き換えることを意味します。再度、感謝します。 – DCRubyHound

+0

はい、パターンの '(*)'部分は基本的に文字列全体を「食べます」。あなたのコードから、私はあなたが望んでいることを正確にはわかりませんでした。たとえば、文字列の連結のためのもので、あなたのコードは文字列を ''日本人 ''に置き換えます( '?paste'を参照してください)。 Rで正規表現するには、 'stringr'パッケージを使うことをお勧めします。 –

関連する問題