Re: [R] Latex: Date Format conversion

From: Marc Schwartz <marc_schwartz_at_me.com>
Date: Thu, 10 Jun 2010 12:19:40 -0500

Felipe,

I would not do the processing in TeX, but do it in R and then pass the results to the \Sexpr{}'s.

If I am correctly understanding the process flow, put the following R code chunk before the point where you need to output the formatted dates:

<<results=hide>>

  START <- format(as.Date(report[1, 1], "%m/%d/%y"), "%B %d, %Y")   END <- format(as.Date(report[1, 15], "%m/%d/%y"), "%B %d, %Y")

@

Then have the following in the document body:

 Report from \Sexpr{START} & - & \Sexpr{END]}

To take an example of your two dates below:

> format(as.Date("6/1/10", "%m/%d/%y"), "%B %d, %Y")
[1] "June 01, 2010"

> format(as.Date("6/15/10", "%m/%d/%y"), "%B %d, %Y")
[1] "June 15, 2010"

See ?as.Date for more information.

Note, that one possible complication is that if the dates in Excel are stored as dates and not as text, that is they are exported as numbers to R, pay close attention to the last example in ?as.Date. If this is the case, then you will need to modify the R code chunk above as per the examples on the help page, to correctly convert the numbers to R's date type and then format the result as you desire.

HTH, Marc

On Jun 10, 2010, at 11:37 AM, Felipe Carrillo wrote:

>
> Marc:
> My report is done every two weeks and is created automatically.
> I click a command button on an Excel form and it runs a .rnw script
> in R creating a latex dynamic report. Excel sends 15 days of data
> to R, eg: 6/1/10 to 6/15/10. Right above my report I usually write the range
> of the report manually, something like "Report from 6/1/10 - 6/15/10" so
> I want to see if latex can select that range of dates dynamically because my
> report dates are constantly changing. I would like latex to look at the beginning
> and last date of my report and fill out the dates on the fly. I can do this easily with
> the following:
> Report from \Sexpr{report[1,1]} & - & \Sexpr{report[1,15]}
> and it prints the correct values:
> Report from 6/1/10 - 6/15/10
> But I want those values formatted like this:
> Report from June 01, 2010 - June 15, 2010
> I am looking for a latex command to convert the dates, something like this pseudo-code:
> Report from \longdate\Sexpr{report[1,1]} & - & \longdate\Sexpr{report[1,15]}
> Where long date will be the format that converts 6/1/10 to June 01, 2010
> Thanks for helping.
>



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. Received on Thu 10 Jun 2010 - 17:22:50 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 10 Jun 2010 - 17:40:28 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive