[R] can I do this with read.table??

Thomas Lumley tlumley at u.washington.edu
Thu Jan 26 23:49:04 CET 2006


On Thu, 26 Jan 2006, Douglas Grove wrote:

> Hi,
>
> I'm trying to figure out if there's an automated way to get
> read.table to read in my data and *not* convert the character
> columns into anything, just leave them alone.  What I'm referring
> to as 'character columns' are columns in the data that are quoted.
> For columns of alphabetic strings (that aren't TRUE or FALSE) I can
> suppress conversion to factor with as.is=TRUE, but what I'd like to
> stop is the conversion of quoted numbers of the form "01","02",...,
> into numeric form.

One approach is to use quote="" to specify that the quote marks are 
considered part of the string. Depending on what you are using the data 
for, you may then need to strip the quotes off, 
eg with sub().
> B<-read.table("a.txt",sep="\t",as.is=TRUE,header=TRUE,quote="")
> B
   X.a. X.b.
1    1 "01"
2    2 "02"
3    3 "03"
> sub("^\"(.*)\"$", "\\1", B[[2]])
[1] "01" "02" "03"

 	-thomas




More information about the R-help mailing list