On Wed, May 30, 2012 at 12:47 PM, Iain Gallagher <iaingallag...@btopenworld.com> wrote: > Hi Phil > > Thanks, but this still doesn't work. > > > Here's a reproducible example (was wrapping my head around these functions > before). > > x <- as.data.frame(cbind(rep('a',5), rep('b',5))) > y <- as.data.frame(cbind(rep('c',5), rep('d',5))) > > write.table(x, 'x.txt', sep='\t', quote=FALSE) > write.table(y, 'y.txt', sep='\t', quote=FALSE) > > zip('test.zip', files = c('x.txt', 'y.txt')) > > pathToZip <- paste(getwd(), '/test.zip', sep='') > > z <- unz(pathToZip, 'x.txt', 'r') > zT <- read.table(z, header=FALSE, sep='\t') > > Error in read.table(z, header = FALSE, sep = "\t") : > seek not enabled for this connection
I get the same error and I don't have direct advice on how to avoid it, but you can avoid working directly with the zip connection by first unzipping the file, then reading it in: pathToZip <- paste(getwd(), '/test.zip', sep='') file = "x.txt" command = paste("unzip -f ", pathToZip, file); system(command) zT = read.table(file, header = FALSE, sep = "\t") By the way, I got an error reading the file x.txt since the write.table command also saved row names. I had to add row.names = FALSE to the write table calls to make it work, like this: x <- as.data.frame(cbind(rep('a',5), rep('b',5))) y <- as.data.frame(cbind(rep('c',5), rep('d',5))) write.table(x, 'x.txt', sep='\t', quote=FALSE, row.names = FALSE) write.table(y, 'y.txt', sep='\t', quote=FALSE, row.names = FALSE) zip('test.zip', files = c('x.txt', 'y.txt')) HTH, Peter ______________________________________________ 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.