2017-10-13 5 views
0

に文字の後に文字列の一部を削除します。は条件付きで、私はこのようになります名前のベクトルを持っているR

names <- c("Verticordia (Cha)", "Whiteodendron\n(Loph)", "Platysace", 
"Xanthostemon\n(Xan)", "Quercus (incl.\nCyclobalanopsis)\n(Fag)" 
) 
[1] "Verticordia (Cha)"      "Whiteodendron\n(Loph)"     "Platysace"        "Xanthostemon\n(Xan)"      
[5] "Quercus (incl.\nCyclobalanopsis)\n(Fag)" 
私は条件付きを含め、スペースや \後thatcomeすべての文字を削除したいと思います

スペースまたは\私は\または使用してスペースを削除することができました:

gsub("\n*","",names) 
gsub(" *","",names) 

しかし、私は同様に、以下のすべての文字を削除するためのコードを取得してトラブルを抱えています。

答えて

2
gsub("\n.*","",names) 
gsub(" .*","",names) 

アスタリスク量子をドット(すべての文字に一致するワイルドカード)に適用する必要があります。あなたのバージョンでは、量子化文字が改行文字または空白文字に適用されたので、連続する改行または空白文字列のみを削除していました。

1

それとも1つの正規表現のすべての:

names.reduced <- gsub('[ \\\n].*', '', names) 

[1] "Verticordia" "Whiteodendron" "Platysace"  "Xanthostemon" "Quercus"  
+0

本当にありがとうございました。その驚くほどの正規表現は私にとって驚くべきものです。このコードを見ると、直感的なことは何もありません。 – colin

+1

正規表現はすばらしいですが、実際にはそれらはプログラミング言語です。使用するには数秒、マスターには数年。 – jdobres

関連する問題