How to calculate number of occurrences per minute for a large dataset

前端 未结 3 744
时光说笑
时光说笑 2021-01-06 02:42

I have a dataset with 500k appointments lasting between 5 and 60 minutes.

tdata <- structure(list(Start = structure(c(1325493000, 1325493600, 1325494200,         


        
3条回答
  •  旧时难觅i
    2021-01-06 03:01

    Is this any better.

    Create a blank time vector and a blank count vector.

     vecTime <- seq(from=tdata$Start[1],to=tdata$End[nrow(tdata)],by=60)
     addz <- array(0,length(vecTime))
     remz <- array(0,length(vecTime))
    
    
     startAgg <- aggregate(tdata$Start,by=list(tdata$Start),length)
     endAgg <- aggregate(tdata$End,by=list(tdata$End),length)
     addz[which(vecTime %in% startAgg$Group.1 )] <- startAgg$x
     remz[which(vecTime %in% endAgg$Group.1)] <- -endAgg$x
     res <- data.frame(time=vecTime,occupancy=cumsum(addz + remz))
    

提交回复
热议问题