As you've discovered, the . means something special in regular expressions (and R's version of them). You need to escape it with \\:
> x<-data.frame(x=c("aa.bb","cc.dd.ee")) > x$x<-as.character(x$x) > x x 1 aa.bb 2 cc.dd.ee > sub("\\.", " ", x$x) [1] "aa bb" "cc dd.ee" > gsub("\\.", " ", x$x) [1] "aa bb" "cc dd ee" And to change all, you need gsub() rather than sub(). Sarah On Tue, Oct 13, 2009 at 1:26 PM, Dimitri Liakhovitski <ld7...@gmail.com> wrote: > Dear R-ers! > > I have x as a variable in a data frame x. > > x<-data.frame(x=c("aa.bb","cc.dd.ee")) > x$x<-as.character(x$x) > x > > I am sorry for such a simple question - but how can I replace all > periods in x$x with spaces? > > sub('.', ' ', x$x) - removes all letters to the left of each period... > > Thanks a lot for your advice! > -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.