如何在 R 中将数字类型转换为 "seconds"

how to convert numeric type to "seconds" in R

我想通过这样做创建时间序列数据框:

x <- xts(data$length,data$Time.Elapsed)

然后,我收到一条警告消息:

Error in xts(data$length, data$Time.Elapsed) : 
  order.by requires an appropriate time-based object

所以,我在想问题是我的 "Time.Elapsed" 是数字数据。那我想转换"Time.Elapsed"的数据类型,怎么实现呢?

>data$Time Elapsed
    Time Elapsed
    0
    1
    2
    3
    4
    5

我想创建一个时间序列数据框,所以我需要在R中有一个基于时间的对象。这里,"Time Elapsed"是一个数值变量(这些数字代表秒);如何将其转换为时间类型 "seconds"?我搜索了数据时间转换功能,如: as.POSIX* {base} 但我认为这个功能不适合我的情况。任何人都可以帮助我吗?非常感谢!

require(lubridate)    
x <- as.POSIXct(strptime(data$Time.Elapsed, format = "%S"))
as.duration(x)

这应该可以解决问题。

我相信你在这方面还不够低级。 xts 提供了一些方便的函数来帮助确定您是否可以将某些内容转换为 xts

xtsible(data) #Will probably tell you it fails with your current setup.

xts 建立在 zoo 的基础上,zoo 更灵活一些,但更难使用。

library(zoo)
zooData <- zoo(data$length, data$Time.Elapsed)
xtsible(zooData) #Will probably tell you it's ok, but probably doesn't matter since
                 #most/all of xts's functions work on zoo objects.
xtsData <- xts(zooData)