R中的字符匹配

时间:2012-11-07 01:24:45

标签: regex r

在R中,我有桌子:

Field1

&&hello
&hi
Hello
Hi

如何删除以"&"?

开头的所有内容
gsub("&", "", A$Field1) 

只会删除"&"但不是"&& hello"或"& hi"因为我需要它。 我试过"& *"或"& +"但它仍然没有用。

2 个答案:

答案 0 :(得分:1)

使用gsub,您需要匹配整个字符串:

gsub("^&.*", "", A$Field1)

但我发现ifelsegrepl的组合更优雅:

ifelse(grepl("^&", A$Field1), "", A$Field1)

如果目标是在数据框中替换它,那么您可以重新分配:

A$Field1 <- ifelse(grepl("^&", A$Field1), "", A$Field1)

答案 1 :(得分:0)

我不是100%肯定你在问什么,但是如果你想删除带有&符号的行,你可以使用:

a <- c("&hi", "&&hello", "Hello", "Hi")

b <- a[-grep("&", a)]

> b
[1] "Hello" "Hi" 

干杯, 吉姆