[R] How to change the default Date format for write.csvfunction?
William Dunlap
wdunlap at tibco.com
Mon Dec 28 23:18:29 CET 2009
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of
> George.Zou at bnymellon.com
> Sent: Monday, December 28, 2009 8:18 AM
> To: r-help at 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.Zou at bnymellon.com
> To:
> r-help at 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-bounces at 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 at 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 at 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.
>
More information about the R-help
mailing list