R: 分時データの欠損値をNAで埋める.

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 NA NA
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)
}