[R] An apply and rep question

Horace Tso Horace.Tso at pgn.com
Fri Aug 11 20:48:06 CEST 2006


Hi list,

I'm sure the explanation must be laughably simple to the experts out
there, but I just could figure it out. I have a simple data frame that
looks like,

>head(da.off)
       DDate  OffP
1 2005-01-01 41.23
2 2005-01-02 44.86
3 2005-01-03 44.86
4 2005-01-04 43.01
5 2005-01-05 45.47
6 2005-01-06 48.62

where the first column DDate currently is character, and OffP is
numeric. 

I want to duplicate every row 2 times, so I thought I use apply(),

x <- apply(da.off, 2, rep, each=2) 

The result is a matrix of all character,

 head(x)
  DDate        OffP    
1 "2005-01-01" " 41.23"
1 "2005-01-01" " 41.23"
2 "2005-01-02" " 44.86"
2 "2005-01-02" " 44.86"
3 "2005-01-03" " 44.86"
3 "2005-01-03" " 44.86"

To convert it back to numeric, I did

x <- as.data.frame(x)
x$OffP <- as.numeric(x$OffP)

However, the OffP column didn't convert correctly, a mystery since they
"look" quite alright above. (I know, I know, there seems to be a space
there. But why?)

head(x)
         DDate OffP
1   2005-01-01  150
1.1 2005-01-01  150
2   2005-01-02  202
2.1 2005-01-02  202
3   2005-01-03  202
3.1 2005-01-03  202

Is this the wrong way to use apply or rep? 

Horace



More information about the R-help mailing list