имеют время начала и окончания posixct, и я пытаюсь подсчитать уникальные случаи элементов, у которых есть время перекрытия, на секунду
не могу изменить posxct ymd hms, используя lubridate, или оно меняет hms на нечетноевремя.данные были в мм: сс изначально в виде символа.Я добавил 00: к началу, используя манипуляции со строками, но не могу получить правильный чч: мм: сс для dplyr или цикла, который работает
`head(Fish_20180424_001_New) #my data table
Survey ID Clip ID Species Enter Frame Exit Frame
1: 20180424 001 20180424 001 001 Catostomus occidentalis 2019-05-23 00:01:03 2019-05-23 00:01:08
2: 20180424 001 20180424 001 001 Ptychocheilus grandis 2019-05-23 00:01:16 2019-05-23 00:01:18
3: 20180424 001 20180424 001 001 Catostomus occidentalis 2019-05-23 00:01:48 2019-05-23 00:01:52
4: 20180424 001 20180424 001 001 Catostomus occidentalis 2019-05-23 00:02:04 2019-05-23 00:02:06
5: 20180424 001 20180424 001 001 Unkn. 2019-05-23 00:02:06 2019-05-23 00:02:08
6: 20180424 001 20180424 001 001 Ptychocheilus grandis 2019-05-23 00:02:07 2019-05-23 00:02:11
setkey(Fish_20180424_001_New, Species, `Enter Frame`, `Exit Frame`)
vecTime <- seq(from=Fish_20180424_001_New$`Enter Frame`[1],to=Fish_20180424_001_New$`Exit Frame`[nrow(Fish_20180424_001_New)],by=1)
res <- data.frame(time=vecTime)
for(i in 1:length(unique(Fish_20180424_001_New$Species)) ) {
addz <- array(0,length(vecTime))
remz <- array(0,length(vecTime))
Fish_20180424_001_New_Final <- Fish_20180424_001_New[J(unique(Fish_20180424_001_New$Species)[i]),] # Subset a certain species
startAgg <- aggregate(Fish_20180424_001_New_Final$`Enter Frame`,by=list(Fish_20180424_001_New_Final$`Enter Frame`),length)
endAgg <- aggregate(Fish_20180424_001_New_Final$`Exit Frame`,by=list(Fish_20180424_001_New_Final$`Exit Frame`),length)
addz[which(vecTime %in% startAgg$Group.1 )] <- startAgg$x
remz[which(vecTime %in% endAgg$Group.1)] <- -endAgg$x
res[,c( unique(Fish_20180424_001_New$Species)[i] )] <- cumsum(addz + remz)
}
res2<-res%>%filter(time < "2019-05-23 00:20:01")
max(res2$`Catostomus occidentalis`)
max(res2$`Micropterus sp`)
max(res2$`Micropeterus salmoides`)
max(res2$`Morone saxatilis`)
max(res2$`Ptychocheilus grandis`)
max(res2$Unidentified)
max(res2$Unkn.)
только для vecTimeдлина 66 и, кажется, начинается в правильном месте (00:01:03), но заканчивается рано, когда первое время начала перекрывается временем окончания (02:06)
необходимо получить соответствующую последовательность, которая должнаконец на длине последней записи в конце времени, которая составляет 00: 51: 27