代替 ”。” 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
在长正则表达式中,我倾向于使用第二种语法,因为我发现它更具可读性。
我有如下数据,我想用“.”代替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
在长正则表达式中,我倾向于使用第二种语法,因为我发现它更具可读性。