Oh darn, I had that line and then when I copied it to gmail I thought I'd be all slick and clean up my code: oh well...just not my day/thread...
It's possible to work around the repeated headers business (change to something like "Call$col.names <- !append") but yeah, at this point I'm thinking its perhaps better practice to direct the OP to the various connection methods: sink() is nice, but he'll probably have to do something to convert his object to a CSV like string before printing: apply(OBJ, 1, paste, sep=",") Michael Weylandt On Wed, Sep 21, 2011 at 11:20 AM, Jan van der Laan <e...@dds.nl> wrote: > Michael, > > You example doesn't seem to work. Append isn't passed on to the write.table > call. You will need to add a > > Call$append<- append > > to the function. And even then there will be a problem with the headers > that are repeated when appending. > > > An easier solution is to use write.table directly (I am using > Dutch/European csv format): > > data <- data.frame(a=1:10, b=1, c=letters[1:10]) > write.table(data, file="test.csv", sep=";", dec=",", row.names=FALSE, > col.names=TRUE) > write.table(data, file="test.csv", sep=";", dec=",", row.names=FALSE, > col.names=FALSE, > append=TRUE) > > > When first openening a file connection and passing that to write.csv or > write.table data is also appended. The problem with write.csv is that > writing the column names can not be suppressed which will result in repeated > column names: > > con <- file("d:test2.csv", "wt") > write.csv2(data, file=con, row.names=FALSE) > write.csv2(data, file=con, row.names=FALSE) > close(con) > > So one will still have to use write.table to avoid this: > > con <- file("d:test2.csv", "wt") > write.table(data, file=con, sep=";", dec=",", row.names=FALSE, > col.names=TRUE) > write.table(data, file=con, sep=";", dec=",", row.names=FALSE, > col.names=FALSE, > append=TRUE) > close(con) > > Using a file connection is probably also more efficient when doing a large > number of appends. > > Jan > > > > > > > > > Quoting "R. Michael Weylandt" <michael.weyla...@gmail.com>: > > Touche -- perhaps we could make one though? >> >> write.csv.append <- function(..., append = TRUE) >> { >> Call <- match.call(expand.dots = TRUE) >> for (argname in c("col.names", "sep", "dec", "qmethod")) if >> (!is.null(Call[[argname]])) >> warning(gettextf("attempt to set '%s' ignored", argname), >> domain = NA) >> rn <- eval.parent(Call$row.names) >> Call$col.names <- if (is.logical(rn) && !rn) >> TRUE >> else NA >> Call$sep <- "," >> Call$dec <- "." >> Call$qmethod <- "double" >> Call[[1L]] <- as.name("write.table") >> eval.parent(Call) >> } >> write.csv.append(1:5,"test.**csv", append = FALSE) >> write.csv.append(1:15, "test.csv") >> >> Output seems a little sloppy, but might work for the OP. >> >> Michael Weylandt >> >> On Wed, Sep 21, 2011 at 9:03 AM, Ivan Calandra < >> ivan.calan...@uni-hamburg.de >> >>> wrote: >>> >> >> I don't think there is an append argument to write.csv() (well, actually >>> there is one, but set to FALSE). >>> There is however one to write.table() >>> Ivan >>> >>> Le 9/21/2011 14:54, R. Michael Weylandt <michael.weyla...@gmail.com> a >>> écrit : >>> >>> The append argument of write.csv()? >>> >>>> >>>> Michael >>>> >>>> On Sep 21, 2011, at 8:01 AM, "Ashish Kumar"<ashish.kumar@** >>>> esteeadvisors.com >>>> <ashish.kumar@esteeadvisors.**com<ashish.ku...@esteeadvisors.com>>> >>>> wrote: >>>> >>>> Hi, >>>> >>>>> >>>>> >>>>> >>>>> I wanted to write the data created using R on existing csv file. >>>>> However >>>>> everytime I use write.csv, it overwrites the values already there in >>>>> the >>>>> existing csv file. Any workaround on this. >>>>> >>>>> >>>>> >>>>> Thanks for your help >>>>> >>>>> >>>>> >>>>> Ashish Kumar >>>>> >>>>> >>>>> >>>>> Estee Advisors Pvt. Ltd. >>>>> >>>>> Email: ashish.ku...@esteeadvisors.com >>>>> >>>>> Cell: +91-9654072144 >>>>> >>>>> Direct: +91-124-4637-713 >>>>> >>>>> >>>>> >>>>> >>>>> [[alternative HTML version deleted]] >>>>> >>>>> ______________________________****________________ >>>>> R-help@r-project.org mailing list >>>>> https://stat.ethz.ch/mailman/****listinfo/r-help<https://stat.ethz.ch/mailman/**listinfo/r-help> >>>>> <https://stat.**ethz.ch/mailman/listinfo/r-**help<https://stat.ethz.ch/mailman/listinfo/r-help> >>>>> > >>>>> >>>>> PLEASE do read the posting guide http://www.R-project.org/** >>>>> posting-guide.html >>>>> <http://www.R-project.org/**posting-guide.html<http://www.R-project.org/posting-guide.html> >>>>> > >>>>> >>>>> and provide commented, minimal, self-contained, reproducible code. >>>>> >>>>> ______________________________****________________ >>>> R-help@r-project.org mailing list >>>> https://stat.ethz.ch/mailman/****listinfo/r-help<https://stat.ethz.ch/mailman/**listinfo/r-help> >>>> <https://stat.**ethz.ch/mailman/listinfo/r-**help<https://stat.ethz.ch/mailman/listinfo/r-help> >>>> > >>>> >>>> PLEASE do read the posting guide http://www.R-project.org/** >>>> posting-guide.html >>>> <http://www.R-project.org/**posting-guide.html<http://www.R-project.org/posting-guide.html> >>>> > >>>> >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>>> >>>> -- >>> Ivan CALANDRA >>> PhD Student >>> University of Hamburg >>> Biozentrum Grindel und Zoologisches Museum >>> Dept. Mammalogy >>> Martin-Luther-King-Platz 3 >>> D-20146 Hamburg, GERMANY >>> +49(0)40 42838 6231 >>> ivan.calan...@uni-hamburg.de >>> >>> ********** >>> http://www.for771.uni-bonn.de >>> http://webapp5.rrz.uni-**hambu**rg.de/mammals/eng/1525_8_**1.**php<http://hamburg.de/mammals/eng/1525_8_**1.php> >>> <http://webapp5.rrz.uni-**hamburg.de/mammals/eng/1525_8_**1.php<http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php> >>> > >>> >>> >>> >>> ______________________________****________________ >>> R-help@r-project.org mailing list >>> https://stat.ethz.ch/mailman/****listinfo/r-help<https://stat.ethz.ch/mailman/**listinfo/r-help> >>> <https://stat.**ethz.ch/mailman/listinfo/r-**help<https://stat.ethz.ch/mailman/listinfo/r-help> >>> > >>> >>> PLEASE do read the posting guide http://www.R-project.org/** >>> posting-guide.html >>> <http://www.R-project.org/**posting-guide.html<http://www.R-project.org/posting-guide.html> >>> > >>> >>> and provide commented, minimal, self-contained, reproducible code. >>> >>> >> [[alternative HTML version deleted]] >> >> >> > ______________________________**________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide http://www.R-project.org/** > posting-guide.html <http://www.R-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > [[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.