[R] How can we creat conditional data frame

saikat sarkar dipa_sanyal at yahoo.com
Fri Apr 4 20:21:06 CEST 2008


 
Here is the solution

data<-read.table("d:/ftse.txt",header=TRUE)
 wDay<-as.Date(data$date,"%d/%m/%Y")
 data<-data.frame(data[,-1])
 price<-data$ftse100
 data<-data.frame(price,wDay)
 data[1:10,]
 

 a<-as.Date("03/01/1989","%d/%m/%Y")
 b<-as.Date("31/01/2007","%d/%m/%Y")
 ab<-seq(a,b,by=1)
 c<-format(ab,"%a")
 date<-data.frame(ab,c)
 date<-subset(date,c!="Sun")
 date<-subset(date,c!="Sat")
 
 res <- merge(date, data, by.x = "ab", by.y="wDay", all=T)
 res$h <- 0
 res$h[is.na(res$price)] <- 1
 res$price[is.na(res$price)] <- 0

 h<-res$h[-1]
 h1<-c(h,0)
 final.data<- data.frame(res$price,h1)
 final.data<-final.data[final.data$res.price>0,]


saikat sarkar wrote:
> 
> Hi, 
> 
> R experts. I am a new user of R and trying to learn this program. 
> 
> I have a problem. Here is the code.
> 
> d<-as.Date(c("2000/01/03","2000/01/05","2000/01/19","2000/01/28"))
> r<-rnorm(4)
> da<-data.frame(d,r)
> 
> a<-as.Date("01/01/2000","%d/%m/%Y")
> b<-as.Date("30/01/2000","%d/%m/%Y")
> ab<-seq(a,b,by=1)
> c<-format(ab,"%a")
> date<-data.frame(ab,c)
> date<-subset(date,c!="Sun")
> date<-subset(date,c!="Sat")
> 
> Here I have 2 data frame. 
> 
> da
> -------------
>            d          r
> 1 2000-01-03  1.2105865
> 2 2000-01-05 -0.8962776
> 3 2000-01-19 -1.0438936
> 4 2000-01-28  2.1329387
> 
> ---------------------------
> date
> --------------
>       ab   c
> 3  2000-01-03 Mon
> 4  2000-01-04 Tue
> 5  2000-01-05 Wed
> 6  2000-01-06 Thu
> 7  2000-01-07 Fri
> 10 2000-01-10 Mon
> 11 2000-01-11 Tue
> 12 2000-01-12 Wed
> 13 2000-01-13 Thu
> 14 2000-01-14 Fri
> 17 2000-01-17 Mon
> 18 2000-01-18 Tue
> 19 2000-01-19 Wed
> 20 2000-01-20 Thu
> 21 2000-01-21 Fri
> 24 2000-01-24 Mon
> 25 2000-01-25 Tue
> 26 2000-01-26 Wed
> 27 2000-01-27 Thu
> 28 2000-01-28 Fri
> 
> ---------------
> 
> In data frame-"DA"- I have return(r) and date
> In data frame-"Date"- where I have date and day.
> 
> Now I need to create a data frame where returns will be conditional on
> date and rest will be zero. 
> 
> -------------------
> like this
> ---------------------
> 
>  ab            c                   r            hd
> 3  2000-01-03 Mon    1.2105865      0
> 4  2000-01-04 Tue         0              1
> 5  2000-01-05 Wed        0              1
> 6  2000-01-06 Thu         0              1
> 7  2000-01-07 Fri           0              1
> 
> ---------------------------------
> 
> From this I can figureout the hoildays and then put each holidays equal to
> 1. 
> 
> 
> Please help me. 
> 
> Thanking you 
> 
> saikat
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/How-can-we-creat-conditional-data-frame-tp16491208p16495146.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list