@@ -189,18 +189,21 @@ variogramST.STIDF <- function (formula, data, tlags, cutoff,
189189 m = model.frame(terms(formula ), as(data , " data.frame" ))
190190
191191 diffTime <- diff(index(data ))
192- timeScale <- units(diffTime )
193- if (missing(tunit ))
194- warning(paste(" The argument 'tunit' is missing: tlags are assumed to be given in " , timeScale , " ." ,sep = " " ))
195- else {
196- stopifnot(tunit %in% c(" secs" , " mins" , " hours" , " days" , " weeks" ))
197- units(diffTime ) <- tunit
198- timeScale <- tunit
199- }
200- diffTime <- as.numeric(diffTime )
201- if (missing(twindow )) {
202- twindow <- round(2 * max(tlags , na.rm = TRUE )/ mean(diffTime ,na.rm = TRUE ),0 )
203- }
192+ if (inherits(diffTime , " difftime" )) {
193+ timeScale <- units(diffTime )
194+ if (missing(tunit ))
195+ warning(paste(" The argument 'tunit' is missing: tlags are assumed to be given in " , timeScale , " ." ,sep = " " ))
196+ else {
197+ stopifnot(tunit %in% c(" secs" , " mins" , " hours" , " days" , " weeks" ))
198+ units(diffTime ) <- tunit
199+ timeScale <- tunit
200+ }
201+ diffTime <- as.numeric(diffTime )
202+ } else if (! missing(tunit ))
203+ stop(" 'tunit' ignored, as time values are not of class POSIXct or Date" )
204+
205+ if (missing(twindow ))
206+ twindow <- round(2 * max(tlags , na.rm = TRUE ) / mean(diffTime , na.rm = TRUE ), 0 )
204207
205208 nData <- nrow(data )
206209
0 commit comments