[R] Convert char vector to numeric table
Nurnberg-LaZerte
mail at fwr.on.ca
Tue Apr 1 00:09:42 CEST 2003
I'm a great fan of read.table(), but this time the data had a lot of cruft. So I used readLines() and editted the char vector to eventually get something like this:
" 23.4 1.5 4.2"
" 19.1 2.2 4.1"
and so on. To get that into a 3 col numeric table, I first just used:
writeLines(data,"tempfile")
read.table("tempfile",col.names=c("A","B","C"))
Works fine, but writing to a temporary file seems ... inelegant? And read.table() doesn't take a char vector as a file or connection argument. The following works but it seems like a lot of code:
data <- sub(" +","",data) # remove leading blanks for strsplit
data <- strsplit(data," +") # strsplit returns a list of char vectors
ndata <- character(0) # vectorize the list of char vectors
for (ii in 1:length(data)) ndata <- c(ndata,data[[ii]])
ndata <- as.numeric(ndata)
dim(ndata) <- c(3,length(data))
data <- t(ndata)
data.frame(A=data[,1],B=data[,2],C=data[,3])
Am I missing something?
Thanks,
Bruce L.
More information about the R-help
mailing list