我只想用空格替换一些单词分隔符。有什么暗示吗?转换为字符后也不起作用。
df <- data.frame(m = 1:3, n = c("one.one", "one.two", "one.three"))
> gsub(".", "\\1 \\2", df$n)
[1] " " " " " "
> gsub(".", " ", df$n)
[1] " " " " " "
答案 0 :(得分:4)
您无需使用正则表达式进行一对一字符转换。您可以使用chartr()
。
df$n <- chartr(".", " ", df$n)
df
# m n
# 1 1 one one
# 2 2 one two
# 3 3 one three
答案 1 :(得分:2)
你可以尝试
gsub("[.]", " ", df$n)
#[1] "one one" "one two" "one three"
答案 2 :(得分:2)
如果您正在寻找完全匹配并且不需要正则表达式,请设置fixed = TRUE
。
gsub(".", " ", df$n, fixed = TRUE)
#[1] "one one" "one two" "one three"
对于这种情况,这也比使用适当的正则表达式更快。</ p>
答案 3 :(得分:1)
我建议你这样做,
gsub("\\.", " ", df$n)
OR
gsub("\\W", " ", df$n)
\\W
匹配任何非单词字符。 \\W+
匹配一个或多个非字字符。如有必要,请使用\\W+
。