R: 分時データの欠損値をNAで埋める関数.
入力例
date_123=c("2012-5-01","2012-5-02","2012-5-02","2012-5-02")
time_123=c("23:59:00","00:00:00","00:02:00","00:03:00")
value=c(1,2,3,5)
出力例(左から, UNIXTIME, 値,日付,時間,UNIXTIME)
time1 value2 date2 time2 date_time_Pos2
1 1335884340 1 2012-5-01 23:59:00 1335884340
2 1335884400 2 2012-5-02 00:00:00 1335884400
3 1335884460 NANA
4 1335884520 3 2012-5-02 00:02:00 1335884520
5 1335884580 5 2012-5-02 00:03:00 1335884580
#入力例 date_123=c("2012-5-01","2012-5-02","2012-5-02","2012-5-02") time_123=c("23:59:00","00:00:00","00:02:00","00:03:00") value=c(1,2,3,5) #Function fill_the_gap<-function(date_123,time_123,value){ date_time<-paste(date_123,time_123) date_time_Pos<-as.numeric(as.POSIXlt(paste(sep="",date_time," JST"))) index<-(date_time_Pos-min(date_time_Pos))/60+1 max123<-(max(date_time_Pos)-min(date_time_Pos))/60+1 date_time_Pos2<-NULL value2<-NULL date2<-NULL time2<-NULL time1<-min(date_time_Pos)+60*0:(max123-1) value2[1:max123]<-NA date2[1:max123]<-NA time2[1:max123]<-NA date_time_Pos2[1:max123]<-NA value2[index]<-value date2[index]<-date_123 time2[index]<-time_123 date_time_Pos2[index]<-date_time_Pos data.frame(time1,value2,date2,time2,date_time_Pos2) } fill_the_gap(date_123,time_123,value) }