2017-09-17 176 views
1

该函数给我意想不到的结果,并带有错误消息。 看我发现了什么as.ITime错误“无效子串参数”

as.ITime(reff[["Saida"]]) 
[1] "05:24:00" 


as.ITime(df[,"Saida"]) 
[1] "04:30:00" 

之后,我执行:

diff(reff[["Saida"]], df[,"Saida"]) 
Error in substring(paste("0", hh, sep = ""), nchar(paste(hh))) : 
invalid substring arguments 

我怎样才能解决这个问题?任何想法为什么这个错误出现?

PS:

这是DF

structure(list(Linha = 307L, Sentido = 1L, Saida = structure(16200L, class = "ITime"), 
Chegada = structure(16740L, class = "ITime"), Catraca = 0L, 
Embarcado = 25L, dia = "sexta", feriado = TRUE, isOL = FALSE, 
antes = TRUE, proximo = TRUE), .Names = c("Linha", "Sentido", 
"Saida", "Chegada", "Catraca", "Embarcado", "dia", "feriado", 
"isOL", "antes", "proximo"), row.names = 747092L, class = "data.frame") 

这是REFF

structure(list(Linha = 307L, Sentido = 1L, Saida = structure(19440L, class = "ITime"), 
Chegada = structure(20700L, class = "ITime"), Catraca = 35L, 
Embarcado = 125L, dia = "sexta", feriado = TRUE, isOL = TRUE, 
antes = TRUE, proximo = TRUE), .Names = c("Linha", "Sentido", 
"Saida", "Chegada", "Catraca", "Embarcado", "dia", "feriado", 
"isOL", "antes", "proximo"), row.names = 747094L, class = "data.frame") 

回答

2

你需要difftime(见?difftime)代替diff(见?diff):

difftime(reff[["Saida"]], df[,"Saida"]) 

的54分钟

diff时间差被用于创建1个变量的滞后。 difftime用于计算2个时间/日期变量之间的差异。

+0

也许相反,“差异是为了考虑一个变量和它自己的滞后之间的差异”。也可以指向'?diff','?as.ITime'(它通过?DateTimeClasses链接到?difftime)。 – Frank

+1

@Frank通过'?'添加了相关文档的参考。谢谢 –