在 R 中使用 gsub() 将 "."替换为空格?

标签 r gsub

我有如下数据,我喜欢替换“。”使用 gsub() 空间但我无法获得正确的输出。

data<-c("12.57869486" ,"12.57869582" ,"12.57870155")

a<- gsub("."," ", data)
a
[1] "           " "           " "           "

最佳答案

实现这一目标的多种方法:

1) 使用 fixed gsub 的参数:

来自 ?gsub :

fixed logical. If TRUE, pattern is a string to be matched as is. Overrides all conflicting arguments.



所以添加 fixed=TRUE到您的命令足以避免解释 .作为任何字符(正则表达式模式):
> a<-gsub(".", " ", data, fixed=TRUE)
> a
[1] "12 57869486" "12 57869582" "12 57870155"

2) 使用 chartr (来自 G. Grothendieck 评论):
chartr(".", " ", data)

3) 转义特殊字符 .这意味着正则表达式中的任何字符:(来自 Tim Biegeleisen 评论)
  • gsub("\\.", " ", data)用双反斜杠转义
  • gsub("[.]", " ", data)使用字符类转义

  • 在长正则表达式中,我倾向于使用第二种语法,因为我发现它更具可读性。

    关于在 R 中使用 gsub() 将 "."替换为空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35655485/

    相关文章:

    r - 将 geom_text 与 geom_jitter 点对齐

    awk - 使用 awk 从字段中删除空格

    regex - 使用正则表达式拆分列中的值

    文件中的 Ruby 空行不会删除

    r - 更改 R 方图中的标签位置(决策/回归树)

    c++ - 是否有(足够快的)解决方法来乘以超出内存限制的矩阵?

    r - HTS 包 : how to specify a network-like hierarchy of forecasts?

    r - Shiny :如何选择打开菜单中的第一个子项

    r - 如何改进跳过两个单词之一的正则表达式?

    regex - 使用 gsub 创建统一的时间格式