【问题标题】:Time difference in R: POSIXct errorR 中的时间差:POSIXct 错误
【发布时间】:2013-07-18 06:24:12
【问题描述】:

我正在使用这段代码来计算时差。

ctym <- lapply(G, function(x) x[k,2])
y <- lapply(G, function(x) x[j,2])
t1 <- c(y,ctym)
dt1 <- as.POSIXct(t1)
dtyme <- difftime(dt1[2],dt1[1],units = "mins")

t1 的输出为:

 [[1]]
      time_occurred 
"2013-04-01 20:27:18"

[[2]]
    time_occurred 
"2013-04-01 20:27:48"

我得到的错误是: as.POSIXct.default(t1) 中的错误: 不知道如何将“t1”转换为“POSIXct”类

这里有什么问题?

【问题讨论】:

  • 就像@LostBrit 说的,你需要分享一个数据样本。请看这个:stackoverflow.com/questions/5963269/…
  • lapply 返回一个列表。在两个列表上使用 c 会返回一个列表。列表没有as.POSIXct 方法。

标签: r time posixct


【解决方案1】:

t1 不是 POSIXct 对象。我认为这可能是目前的清单。您需要执行类似...

t1 <- as.POSIXct(unlist(t1), format = "%y-%m-%d H:M:S"))

.... 将 t1 转换为正确的格式以进行一些数学运算。

如果您使用paste() 而不是c() 来组合您的数据,则可能不需要这样做,但如果没有您的数据,我们就无法确定。

如果您可以发布一些数据,我们可以看看我们能做什么:)

【讨论】:

  • 感谢您的帮助,但这也显示了相同的错误。我的 G 是:[[1]] event_id time_occurred [1,] "MX050113" "2013-04-01 20:27:48" [2,] "MX050113" "2013-04-01 20:27:18"
  • @anu,这对我没有帮助。你需要看看这个:stackoverflow.com/questions/5963269/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
  • 2019-03-11
  • 2012-08-08
  • 2017-05-03
  • 2013-09-26
  • 1970-01-01
  • 2014-06-30
相关资源
最近更新 更多