代替 ”。” space 在 R 中使用 gsub()?

replace "." with space using gsub() in R?

我有如下数据,我想用“.”代替space 使用 gsub() 但我无法获得正确的输出。

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

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

有多种实现方式:

1)使用gsub的fixed参数:

来自?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) 使用字符转义 class

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