After you read in the first line, read the rest of the file with a single scan:
rest <- scan(..., sep="\t", what=0, skip=1) index <- 1 # used to march through 'rest' for (i in 1:3000){ for (j in 1:i){ malt[i,j] <- rest[index] index <- index+1 } } There are probably faster ways, but this should go quicker since most of your previous time was spent in the reading. On Jan 2, 2008 6:05 PM, Talbot Katz <[EMAIL PROTECTED]> wrote: > > Hi. > > I have a matrix stored in a large, tab-delimited flat file. The first row > contains column names. Because the matrix is symmetric, the file has lower > triangular format, so the second row contains one number, the third row two > numbers, etc. In general, row k+1 contains k numbers; the matrix has 3000 > rows, so the file has 3001 rows. The file has variable length records, so > each row ends with its last piece of data. I read in the file and produced > the full symmetric matrix as follows: > > > mana01 <- scan( file = "C:/mat.dat", sep = "\t", nlines = 1, what = > > "character" )Read 3000 items> nco <- length( mana01 )> malt <- matrix(0, > > nrow = nco, ncol = nco )> colnames( malt ) <- mana01> rownames( malt ) <- > > mana01> for ( i in 1:3000 ) { malt[ i, (1:i) ] <- scan( file="C:/mat.dat", > > skip = i, n = i, quiet = TRUE ) } > > mat <- malt + t( malt ) - diag( diag( malt ) )> > > The for loop took a couple of hours to complete. I suspect there's a much > faster way to do this. Any suggestions? Thanks! > > -- TMK --212-460-5430 home917-656-5351 cell > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? ______________________________________________ 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.