我有一个名字的矢量,如下所示:
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)"
我想有条件地删除空格或\
之后的所有字符,包括空格或\
。我可以使用
\
或空格
gsub("\n*","",names)
gsub(" *","",names)
但是,我在获取代码时也无法删除所有后续字符。
答案 0 :(得分:2)
gsub("\n.*","",names)
gsub(" .*","",names)
您希望星号量词应用于点(这是一个匹配所有字符的通配符)。您的版本将quantfer应用于换行符或空格字符,因此您只删除了连续换行符或空格字符串。
答案 1 :(得分:1)
或全部在1个正则表达式中:
names.reduced <- gsub('[ \\\n].*', '', names)
[1] "Verticordia" "Whiteodendron" "Platysace" "Xanthostemon" "Quercus"