一段程序中,需要对数据进行动态分割。
例如time=c("1 mins", "2 mins", .......)
然后对list1<-list 的子列表按照time分割。具体来说,list1[[1]]按照time[1]分割,list1[[2]]按照time[2]分割,以此类推。
但是在操作中,如果手动输入breaks,例如“1 mins",就可以正确分割,但是如果走循环,例如
for(i in 1:lengh(data.frame){
split(data.frame1,cut(strptime(list1[
]$time,format="%R")),breaks=c))
}
就会提示, Error in cut.POSIXt(strptime(paste(stock.data[[i + 4]][, 1]), format = "%R"), :
'breaks'的值有错
具体代码如下
stock.data<-list(stock.data1,stock.data2,stockdata3,stockdata4,.......)
m<-cal.m(stock.data)
interval.time<-60*240/m
interval.time<-paste0(interval.time," secs")
resample<-list()
bandi.rv<-numeric()
for(i in 1:length(stock.data)-4){
resample[]<-split(stock.data[[i+4]], cut(strptime(paste(stock.data[[i+4]][,1]), format="%R"),paste(interval.time)))
bandi.rv<-sum(as.numeric(lapply(resample[],function(x){return(x[length(x[,1]),2])})),na.rm=T)}
下面的附件中提供了第1到10个子列表。