这是我的
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
谢谢
您应该启用
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