Please help to solve that problem:
 
filter and merge 2 big Df's  by=t_chr in sec.
 
 
 require(zoo)
  t1="2012-03-25 17:00:00.0"
  t2="2012-03-25 17:00:05.0"  
  t1_POSIXlt<-strptime(t1, "%Y-%m-%d %H:%M:%OS")#
  t2_POSIXlt<-strptime(t2, "%Y-%m-%d %H:%M:%OS")#
#  ts_t1t2_POSIXlt<-seq(t1_POSIXlt,t2_POSIXlt,length.out 
=-1+2*length(seq(t1_POSIXlt,t2_POSIXlt, "sec") ) )
  ts_t1t2_POSIXlt<-seq(t1_POSIXlt,t2_POSIXlt,length.out 
=length(seq(t1_POSIXlt,t2_POSIXlt, "sec") ) )
  t_ts_t1t2_chr<-as.character(format(ts_t1t2_POSIXlt,"%Y-%m-%d %H:%M:%OS"))
  tail(t_ts_t1t2_chr)
  t_chr<-rep(t_ts_t1t2_chr,c((1:(-1+length(t_ts_t1t2_chr))),1))
  str(t_chr)
# system.time()
Df.a<-as.data.frame(cbind(t_chr,a=c(1:length(t_chr)),b=2*c(1:length(t_chr)),c=0.1*c(length(t_chr):1)));
 Df.a
 
 
#----------------------------------------
#We wants to obtain" for each single second (time as a key) a) mean filtered
                 t_chr  a       b     c
  2012-03-25 17:00:00  1       2     1.6
  2012-03-25 17:00:01  2.5     5     1.45
  2012-03-25 17:00:02  5       10    1.2
  2012-03-25 17:00:03  8.5     17    0.85
  2012-03-25 17:00:04 13       26 0  0.4
  2012-03-25 17:00:05 16       32    0.1

Df.a.filtered.mean=??? 
#------------------------------------------
#We wants to obtain" for each single second (time as a key) 
b) max filtered
#key = time, each second: 1 max from these same seconds
                 t_chr  a  b   c
1  2012-03-25 17:00:00  1  2 1.6
3  2012-03-25 17:00:01  3  6 1.5
6  2012-03-25 17:00:02  6 12 1.3
10 2012-03-25 17:00:03 10 20 1.0
10 2012-03-25 17:00:04 15 30 1.0
16 2012-03-25 17:00:05 16 32 0.1

Df.a.filtered.max =??? 
 
 
#------------------------------------------
 
the problem is, taht we have huge matrix. The solution should be fast.
 
next we want to merge it with another Data frame
#------------------------------------------
  t1="2012-03-25 17:00:00.0"
  t2="2012-03-25 17:00:05.0"  
  t1_POSIXlt<-strptime(t1, "%Y-%m-%d %H:%M:%OS")#
  t2_POSIXlt<-strptime(t2, "%Y-%m-%d %H:%M:%OS")#
  ts_t1t2_POSIXlt<-seq(t1_POSIXlt,t2_POSIXlt,length.out 
=-1+2*length(seq(t1_POSIXlt,t2_POSIXlt, "sec") ) )
#  ts_t1t2_POSIXlt<-seq(t1_POSIXlt,t2_POSIXlt,length.out 
=length(seq(t1_POSIXlt,t2_POSIXlt, "sec") ) )
  t_chr2<-t_ts_t1t2_chr<-as.character(format(ts_t1t2_POSIXlt,"%Y-%m-%d 
%H:%M:%OS"))
  tail(t_ts_t1t2_chr)
Df.b<-as.data.frame(cbind(t_chr2,dfb.b1=c(1:length(t_chr2)),dfb.b=2*c(1:length(t_chr2)),dfb.c=0.1*c(length(t_chr2):1)));
 Df.b
#------------------------------------------
 
merge(Df.a,Df.b, by.x=t_chr,by.y=t_chr2,all.x=TRUE,all.y=TRUE)
 
And if in Df.a there is no all seconds measurements?
And if in Df.a. there are many NA?   
How we can handle it in R?
 
Thanks
 
KaluzaEA.
 
 

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to