Rowwise is easy. The example code I gave does this: it appends the new data /below/ the old. I'll repeat the example below:

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)

Or do you mean columnwise where you append columns? This would be very difficult in CSV. If you would like to do this you might have a look at the various options for exporting to Excel directly. See for example http://rwiki.sciviews.org/doku.php?id=tips:data-io:ms_windows . I have no experience in this.

Regards,
Jan

PS I am sorry for my previous triple post. I had a little fight with my webmail client.


On 09/22/2011 06:14 AM, Ashish Kumar wrote:

IS there a way we can append row wise, so that it all stacks up horizontally, the way you do it in xlswrite in matlab, where you can even specify the cell number from where you want to write.

-Ashish

*From:*R. Michael Weylandt [mailto:michael.weyla...@gmail.com]
*Sent:* Thursday, September 22, 2011 12:03 AM
*To:* Jan van der Laan
*Cc:* r-help@r-project.org; ashish.ku...@esteeadvisors.com
*Subject:* Re: [R] R help on write.csv

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 <mailto: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 <mailto: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 <http://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 <mailto: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 <mailto: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 <http://esteeadvisors.com>
            <ashish.ku...@esteeadvisors.com
            <mailto: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
            <mailto:ashish.ku...@esteeadvisors.com>

            Cell: +91-9654072144 <tel:%2B91-9654072144>

            Direct: +91-124-4637-713 <tel:%2B91-124-4637-713>




              [[alternative HTML version deleted]]

            ______________________________**________________
            R-help@r-project.org <mailto: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.

            ______________________________**________________
            R-help@r-project.org <mailto: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.

        --
        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 <tel:%2B49%280%2940%2042838%206231>
        ivan.calan...@uni-hamburg.de <mailto:ivan.calan...@uni-hamburg.de>

        **********
        http://www.for771.uni-bonn.de

        http://webapp5.rrz.uni-**hamburg.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>




        ______________________________**________________
        R-help@r-project.org <mailto: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 <mailto: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.


______________________________________________
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.

Reply via email to