Thanks a ton! That is great.

ben

On Thu, Mar 1, 2012 at 9:29 PM, Peter Langfelder <peter.langfelder@gmail.com
> wrote:

> On Thu, Mar 1, 2012 at 8:05 PM, Ben quant <ccquant@gmail.com> wrote:
> > Hello,
> >
> > I have another question....
> >
> > I have a data frame that looks like this:
> >                         a          b
> > 2007-03-31 "20070514" "20070410"
> > 2007-06-30 "20070814" "20070709"
> > 2007-09-30 "20071115" "20071009"
> > 2007-12-31 "20080213" "20080109"
> > 2008-03-31 "20080514" "20080407"
> > 2008-06-30 "20080814" "--"
> > 2008-09-30 "20081114" "20081007"
> > 2008-12-31 "20090217" "20090112"
> > 2009-03-31 "--"             "20090407"
> > 2009-06-30 "20090817" "20090708"
> > 2009-09-30 "20091113" "--"
> > 2009-12-31 "20100212" "20100111"
> > 2010-03-31 "20100517" "20100412"
> > 2010-06-30 "20100816" "20100712"
> > 2010-09-30 "20101112" "20101007"
> > 2010-12-31 "20110214" "20110110"
> > 2011-03-31 "20110513" "20110411"
> > 2011-06-30 "20110815" "20110711"
> > 2011-09-30 "20111115" "20111011"
> >
> > (actually it has about 10,00 columns)
> >
> > I'd like all of the strings to be formatted like 2011-11-15, 2011-10-11,
> > etc. as a data frame of the same dimensions and all of the and dimnames
> > intact. They don't have to be of date format. "--" can be NA or left the
> > same. It does have to be fast though...
>
> There may be a ready-made function for this, but if not, substring and
> paste are your friends. Look them up.
>
> Here's how I would do it:
>
> fix = function(x)
> {
>  year = substring(x, 1, 4);
>  mo = substring(x, 5, 6);
>  day = substring(x, 7, 8);
>  ifelse(year=="--", "NA", paste(year, mo, day, sep = "-"))
> }
>
> fixed = apply(YourDataFrame, 2, fix)
> dimnames(fixed) = dimnames(YourDataFrame)
>
> Since you don't provide an example I can't test it exhaustively but it
> seems to work for me.
>
> Peter
>

	[[alternative HTML version deleted]]

