【问题标题】:as.ITime error "invalid substring arguments"as.ITime 错误“无效的子字符串参数”
【发布时间】:2017-09-17 00:20:24
【问题描述】:

该函数给了我意想不到的结果,并带有一条错误消息。 看看我发现了什么

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")

这是参考

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")

【问题讨论】:

    标签: r function time data.table


    【解决方案1】:

    你需要difftime(见?difftime)而不是diff(见?diff):

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

    时差 54 分钟

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

    【讨论】:

    • 也许相反,“差异是为了获取一个变量与其自身滞后之间的差异”。也可以指向?diff、?as.ITime(通过 ?DateTimeClasses 链接到 ?difftime)。
    • @Frank 通过? 添加了对相关文档的引用。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2018-05-30
    • 2021-09-10
    • 2019-11-19
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多