簡體   English   中英

R:用gsub替換“+”字符

[英]R: Replace “+” character with gsub

問題似乎完全無足輕重,但我無法弄清楚為什么它不起作用。 我只想將一個包含“+”運算符的字符變量替換為除“+”運算符之外的單個值。 由於某種原因,gsub()和sub()函數替換數值但保留運算符。 有關如何克服這一問題的任何暗示? 非常感謝!

data <- c(1,2,3,4,"5+")
gsub(pattern="5+",replacement="5",x=data)
#[1] "1"  "2"  "3"  "4"  "5+"

gsub(pattern="5+",replacement="",x=data)
#[1] "1"  "2"  "3"  "4"  "+"

R 3.0.2

+是元字符,當您想要匹配它時需要進行轉義:

gsub(pattern="5\\+",replacement="5",x=data)
#[1] "1" "2" "3" "4" "5"

或者更一般地說,如果你想刪除+

gsub(pattern="\\+",replacement="",x=data)

如果未轉義, +表示“前一項將匹配一次或多次”,因此在第二個示例中, "5+""5"元素與模式匹配,並替換為"" ,留下"+"

使用fixed=TRUE選項:

gsub(pattern="+", replacement="", fixed=TRUE, c(1,2,3,4,"5+"))

你也可以使用strsplit

as.numeric(strsplit(data, "\\+"))
# [1] 1 2 3 4 5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM