On Tue, Feb 2, 2010 at 11:40 PM, David Winsemius <dwinsem...@comcast.net> wrote:
> The real solution is to grab the miscreant sender by the throat , er, > tactfully discuss with your valued customer ,,, and shake out a machine > readable form that has all of one row in a row. Indeed. But you might get away with something else... It is composed of blocks of (header + 25 data) rows - so using read.table with skip= set to N*26 and nrows=25 would let you read each block, and then use cbind to make up a big matrix. # Here's my test example, which I did with 26 rows just to make sure you understand it and don't just blindly cut n paste (or maybe I can't count): # test - create a matrix and dump it in this format to /tmp/m.txt: m=matrix(sample(26*40),26,40) m sink("/tmp/m.txt") m sink() # now read the second chunk: read.table("/tmp/m.txt",skip=27,nrows=26,sep="") # how to do the whole thing: # gotta have something to bind on to for starters: > mm=matrix(0,nrow=26,ncol=1) > for(i in 0:3){ + mm = cbind(mm,read.table("/tmp/m.txt",skip=i*27,nrows=26,sep="")) + } # get rid of that first column: > mm=mm[,-1] # and now > all(mm==m) [1] TRUE Recovery! But yes, if someone gave you this file then they done wrong, but sometimes all you have is an R transcript from the distant past (or possibly even an old S-plus transcript with an S-plus .Data that you can't read any more). Barry -- blog: http://geospaced.blogspot.com/ web: http://www.maths.lancs.ac.uk/~rowlings web: http://www.rowlingson.com/ twitter: http://twitter.com/geospacedman pics: http://www.flickr.com/photos/spacedman ______________________________________________ R-help@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.