converting an ASCII file to a matrix
This seems to work but it's a bit ugly with the loop (I'm sure you could
replace the loop with "apply").
asc2mat <- function(fname) {
x <- sapply(scan(fname, "character", sep="\n"), strsplit, "")
rlen <- sapply(x, length)
res <- matrix(nrow=length(bar), ncol=max(rlen))
for (i in 1:nrow(res)) {
res[i,1:rlen[i]] <- x[[i]]
}
return(res)
}
Norm Olsen
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Berton Gunter
Sent: Tuesday, May 10, 2005 9:07 AM
To: 'Michael Graber'; r-help at stat.math.ethz.ch
Subject: RE: [R] converting an ASCII file to a matrix
Michael:
Ah ... the bane of real data analysts everywhere: getting the data from its
original format into (R )- usable form for data analysis
This has nothing to do with R-WinEdit, AFAICS.
My approach would be to simply use readLines() to read the lines in as
character strings and then process them by grep and/or regexpr() to extract
the bits I wanted. If the formatting is fixed, substring() may also be
useful. You will also need to convert the resulting character representation
of numerics to numerics via as.numeric().
If you haven't worked through regular expressions before (?regexp), you will
find this a bit of a chore; but it is well worth the effort, as they are
invaluable for this sort of thing. There are numerous web tutorials to help
(google on 'regular expressions').
Cheers,
-- Bert Gunter
Genentech Non-Clinical Statistics
South San Francisco, CA
"The business of the statistician is to catalyze the scientific learning
process." - George E. P. Box
-----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Michael Graber Sent: Tuesday, May 10, 2005 8:45 AM To: r-help at stat.math.ethz.ch Subject: [R] converting an ASCII file to a matrix Dear R-WinEdit users, I got a simple question, but somehow I cannot find the answer, although I have tried a lot! I got an ASCII-file and I want to import it into R, so that every character is defined by [i;j]. The rows are not of the same length. the file looks like the following shortened abstract example: name: xxxxx xxxx age: 9.9.99 record number: 999 title: xxxxx xxxx xxx keywords: xxx xx "white space" name: yyyy yyyyyyyyyyyy age: 8.8.88 record number: 8 title: yyyy yy yyyy keywords: yyyyyyyyyyy yyyyyyyy yyy "white space" I would be very grateful for your help! Michael Graber michael.graber at mail.uni-wuerzburg.de
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html