在 R 中使用 gsub 替换字符串 + [重复]

问题描述 投票:0回答:1

这是我的

df
:

df <- data.frame(a = as.character(c("AB+CD+EF", "GH+IJ+KL")), x = c(1,2)
)
df
         a x
1 AB+CD+EF 1
2 GH+IJ+KL 2

当我使用

"+"
将字符串
">"
替换为
gsub
时,它将
">"
放置在每个字符串之间:

df$y <- gsub("+", ">", df$a)
df
         a x                 y
1 AB+CD+EF 1 >A>B>+>C>D>+>E>F>
2 GH+IJ+KL 2 >G>H>+>I>J>+>K>L>

为什么会出现这种情况?

所需输出:

         a x        y
1 AB+CD+EF 1 AB>CD>EF
2 GH+IJ+KL 2 GH>IJ>KL

谢谢

r string replace gsub
1个回答
0
投票

您应该启用

fixed = TRUE

> transform(df, y = gsub("+", ">", a, fixed = TRUE))
         a x        y
1 AB+CD+EF 1 AB>CD>EF
2 GH+IJ+KL 2 GH>IJ>KL

或使用

chartr
代替

> transform(df, y = chartr("+", ">", a))
         a x        y
1 AB+CD+EF 1 AB>CD>EF
2 GH+IJ+KL 2 GH>IJ>KL
© www.soinside.com 2019 - 2024. All rights reserved.