[R] how to read multiple lines per case

Spencer Graves spencer.graves at pdf.com
Mon Sep 1 20:34:23 CEST 2008


Dear Michael: 

      There are doubtless better ways to do this, but the I just got the 
following ugly hack to work for me: 

rawDat <- readLines('linthall.dat')
(N <- length(rawDat))

N2 <- ((N-1)/2)
outDat <- character(N2+1)
outDat[1] <- rawDat[1]
for(i in 1:N2)
  outDat[i+1] <- paste(rawDat[(2*i)+0:1], collapse=' ')

outFile <- 'linthall2.dat'
writeLines(outDat, outFile)

linthall <- read.table(outFile, header=TRUE)
str(linthall) 

      Hope this helps.
      Spencer

Michael Friendly wrote:
> How can I read a space-delimited file, where the data values for each 
> case
> are folded before column 80, and so appear on two lines for each case?
>
> The first few cases look like this
>
> loc type bio H2S sal Eh7 pH buf P K Ca Mg Na Mn Zn Cu NH4
> OI DVEG 676 -610 33 -290 5.00 2.34 20.238 1441.67 2150.00 5169.05 35184.5
> 14.2857 16.4524 5.02381 59.524
> OI DVEG 516 -570 35 -268 4.75 2.66 15.591 1299.19 1844.76 4358.03 
> 28170.4 7.7285 13.9852 4.19019 51.378
> OI DVEG 1052 -610 32 -282 4.20 4.18 18.716 1154.27 1750.36 4041.27 
> 26455.0
> 17.8066 15.3276 4.79221 68.788
> OI DVEG 868 -560 30 -232 4.40 3.60 22.821 1045.15 1674.36 3966.08 25072.9
> 49.1538 17.3128 4.09487 82.256
>
> The complete data is at:
>
> http://www.math.yorku.ca/SCS/viscollin/data/linthall.dat
>
> thanks,
> -Michael
>



More information about the R-help mailing list