> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of > george....@bnymellon.com > Sent: Monday, December 28, 2009 8:18 AM > To: r-help@r-project.org > Subject: Re: [R] How to change the default Date format for > write.csvfunction? > > Hi, > > This problem might be a little harder than it appears. > > I receive a few emails all suggesting that convert the Date field to > character by calling format(date, "%m/%d/%Y") in one way or > another. Well, > this is not the solution I'm looking for and it doesn't work > for me. All > the date fields are generated with quotes around them, which will be > treated by other software as string instead of date. Please > note, the > write.csv() function doesn't put quotes around date. All I > need is to > change the format behavior of Date without adding any quotes. So the > output of CSV I'm looking for should be: > > "ticker","date","price" > "IBM",12/03/2009,120 > "IBM",12/04/2009,123 > > Not this: > > "ticker","date","price" > "IBM","12/03/2009",120 > "IBM","12/04/2009",123
Write a function that adds double quotes for the columns with classes that you want quoted and call write.csv with quote=FALSE. E.g., the following function f puts double quotes around character and factor columns: f <- function (dataframe) { doubleQuoteNoFancy <- function(x) paste("\"", x, "\"", sep = "") for (i in seq_along(dataframe)) { if (is(dataframe[[i]], "character")) dataframe[[i]] <- doubleQuoteNoFancy(dataframe[[i]]) else if (is(dataframe[[i]], "factor")) levels(dataframe[[i]]) <- doubleQuoteNoFancy(levels(dataframe[[i]])) else if (is(dataframe[[i]], "Date")) dataframe[[i]] <- format(dataframe[[i]], "%m/%d/%Y") } colnames(dataframe) <- doubleQuoteNoFancy(colnames(dataframe)) dataframe } Use it as: > write.csv(f(d), file=stdout(), quote=FALSE, row.names=FALSE) "ticker","date","price" "IBM",12/03/2009,120 "IBM",12/04/2009,123 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > > Thanks for trying though. > > George > > > > From: > george....@bnymellon.com > To: > r-help@r-project.org > Date: > 12/28/2009 10:20 AM > Subject: > [R] How to change the default Date format for write.csv function? > Sent by: > r-help-boun...@r-project.org > > > > Hi, > > I have a data.frame containing a Date column. When using write.csv() > function to generate a CSV file, I always get the Date column > formatted as > > "YYYY-MM-DD". I would like to have it formatted as > "MM/DD/YYYY", but > could not find an easy way to do it. Here is the test code: > > d <- data.frame(ticker=c("IBM", "IBM"), date = > as.Date(c("2009-12-03", > "2009-12-04")), price=c(120.00, 123.00)) > write.csv(d, file="C:/temp/test.csv", row.names=FALSE) > > The test.csv generated looks like this: > > "ticker","date","price" > "IBM",2009-12-03,120 > "IBM",2009-12-04,123 > > I would like to have the date fields in the CSV formatted as > "MM/DD/YYYY". > > Is there any easy way to do this? > > Thanks in advance. > > George Zou > > The information contained in this e-mail, and any attachment, is > confidential and is intended solely for the use of the > intended recipient. > Access, copying or re-use of the e-mail or any attachment, or any > information contained therein, by any other person is not > authorized. If > you are not the intended recipient please return the e-mail > to the sender > and delete it from your computer. Although we attempt to > sweep e-mail and > attachments for viruses, we do not guarantee that either are > virus-free > and accept no liability for any damage sustained as a result > of viruses. > > Please refer to http://disclaimer.bnymellon.com/eu.htm for certain > disclosures relating to European legal entities. > [[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. > > > > > The information contained in this e-mail, and any attachment, > is confidential and is intended solely for the use of the > intended recipient. Access, copying or re-use of the e-mail > or any attachment, or any information contained therein, by > any other person is not authorized. If you are not the > intended recipient please return the e-mail to the sender and > delete it from your computer. Although we attempt to sweep > e-mail and attachments for viruses, we do not guarantee that > either are virus-free and accept no liability for any damage > sustained as a result of viruses. > > Please refer to http://disclaimer.bnymellon.com/eu.htm for > certain disclosures relating to European legal entities. > [[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. > ______________________________________________ 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.