[R] gsub -> replace substring in column

PIKAL Petr petr.pikal at precheza.cz
Thu Aug 23 08:39:10 CEST 2012


Hi

One more comment

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of David Winsemius
> Sent: Thursday, August 23, 2012 2:22 AM
> To: Paula Cafeld
> Cc: r-help at r-project.org
> Subject: Re: [R] gsub -> replace substring in column
> 
> 
> On Aug 22, 2012, at 10:24 AM, Paula Cafeld wrote:
> 
> > Hi all,
> >
> > please excuse- I'm a complete newbie to R, so it's possible my
> > question was asked a thousand times before, but I don't get it :-( I
> > imported a CSV file via:
> >
> > x=read.csv("test.csv",header=TRUE,sep="\t")
> >
> > In a column there are values with the dot-character (".") I want to
> > replace with a commata:
> 
> You should NOT be trying to do that. R will not recognize such values
> as proper numeric values. If you had such values in a text file you
> could be using read.csv2 to read them, but once inside R, they will get
> displayed with periods. write.table() has a 'dec' argument that lets
> you write out results in your preferred format. There are many options
> for changing the way the R behaves, but I do not believe that changing
> the decimal-point symbol is one of them. Trying typing and read this:
> 
> names(options())
> ?options
> 
> David Winsemius, MD
> Alameda, CA, USA

Table below indicates that there is probably empty first line as you got GPS LATITUDE as first line and V16 as data. Your other columns are probably scrambled too. If you want to skip the first line you shall put skip=1 in your read.* call.

Regards
Petr


> >> x[9]
> >                    V16
> > 1         GPS LATITUDE
> > 2    53.51982466427600
> > 3   51.520379571037000
> > 4   53.520745152837800
> > 5   51.521750487103766
> > 6    53.52067987059652
> > 7   53.519504773664345
> > 8    51.51861690180330
> > 9   51.519100010776675
> > 10   51.51905431150669
> > 11    51.5193415632712
> > 12   53.51927627894419
> > 13   51.52073862461807
> > 14   50.51989647613406
> > 15   50.51789875702557
> > 16   50.52051666456883
> >
> > So I tried:
> >
> >> cat(gsub(".",",",x[9],fixed=T))
> >
> > which outputs:
> >
> > c(111, 79, 81, 85, 87, 83, 78, 72, 75, 74, 77, 76, 84, 80, 70, 82,
> > 112, 112, 1, 1, 1, 1, 1, 1, 1, 1, 98, 95, 105, 92, 89, 94, 101, 103,
> > 104, 107, 106, 108, 109, 110, 1, 1, 1, 100, 99, 102, 97, 96, 93, 91,
> > 90, 88, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 23, 25, 21, 22,
> 19,
> > 20, 24, 17, 14, 15, 18, 1, 26, 28, 27, 30, 29, 32, 34, 39, 54, 57,
> 73,
> > 44, 42, 56, 53, 49, 63, 52, 45, 55, 1, 1, 1, 1, 1, 65, 51, 61, 59,
> 86,
> > 31, 67, 60, 35, 41, 38, 40, 33, 37, 36, 43, 62, 58, 64, 68, 69, 66,
> > 50, 47, 71, 46, 48, 1, 1, 1, 1, 1, 13, 12, 11, 11, 7, 1, 1, 8, 9, 1,
> > 4, 2, 5, 6, 1, 1, 1, 10, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> > 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> > 1, 1, 1)
> >
> > The values in the column are still unchanged. What have I to do that
> > the dot will be replaced with the commata?
> >
> > Thanks in advanced
> > Paula
> >
> 
> ______________________________________________
> R-help at 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.




More information about the R-help mailing list