[R] Odp: to append a column to a data frame, has I use loop/if in my case?

Petr PIKAL petr.pikal at precheza.cz
Tue Jan 18 15:26:41 CET 2011


Hi

r-help-bounces at r-project.org napsal dne 17.01.2011 15:59:37:

> days=Sys.Date()-1:70
> price=abs(rnorm(70))
> regular=rep(c(0,0,0,0,1,0,1,0,0,1),c(7,7,7,7,7,7,7,7,7,7))
> y=data.frame(cbind(days,price,regular))
> 
> 
> y is like
>     days      price regular
> 1  14990 0.16149463       0
> 2  14989 1.69519358       0
> 3  14988 1.57821998       0
> 4  14987 0.47614311       0
> 5  14986 0.87016180       0
> 6  14985 2.55679229       0
> 7  14984 0.89753533       0
> 
> 
> the output I want:
> have another column appended to y, whose value is the max price in the 
recent 
> 2 **regular** weeks.

I have no idea what is regular week. Seems to me that you seek some 
rolling maxima for which I suggest to consult package zoo and its function 
rollapply.

> So if the current row is today, then get the max price of the past 14 
days 
> (including today) if the last 2 week are regular weeks,  if one of the 
last 2 
> weeks is not regular week, then I need to go back further to find the 
max 
> price, as I need the max price for the last 2 **regular** weeks. How can 
I do 
> that? Or I have to use loop/if to do it?
> 
> BTW, why the days is like 14990,14989, after cbind(days,price,regular)? 
before
> the cbind, days is like the format "2010-12-23".
>    [[alternative HTML version deleted]]

cbind binds together three vectors and makes a matrix. Matrix can have 
only values of only one type. Therefore it strips off days to underlying 
numeric representation. If you want to know more about R objects and their 
properties you could read R intro.

> str(cbind(days,price,regular))
 num [1:70, 1:3] 14991 14990 14989 14988 14987 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:3] "days" "price" "regular"

Regards
Petr


> 
> ______________________________________________
> 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