【问题标题】:How to convert seconds to time series?如何将秒数转换为时间序列?
【发布时间】:2021-09-29 10:07:06
【问题描述】:

我有一个这样的测量数据框

Second      Current
0.000000    -0.007388           
0.336137    0.014361            
0.672274    0.001699            
1.008411    0.015404            
1.344548    0.009594    

如何将这些测量值转换为时间序列?

【问题讨论】:

标签: r dataframe time-series


【解决方案1】:

您可以添加任意日期,例如UNIX时代的起源。

library(xts)
r <- xts(dat[-1], order.by=as.POSIXct('1970-01-01') + dat$Second)
#                       Current
# 1970-01-01 00:00:00 -0.007388
# 1970-01-01 00:00:00  0.014361
# 1970-01-01 00:00:00  0.001699
# 1970-01-01 00:00:01  0.015404
# 1970-01-01 00:00:01  0.009594

时间实际上仍然以十进制秒存储:

strftime(time(r), '%OS7')
# [1] "00.000000" "00.336136" "00.672274" "01.008410" "01.344548"

数据:

dat <- read.table(header=T, text='Second      Current
0.000000    -0.007388           
0.336137    0.014361            
0.672274    0.001699            
1.008411    0.015404            
1.344548    0.009594    
')

【讨论】:

    【解决方案2】:

    1) 动物园 假设在最后的注释中可重现地显示输入,我们可以将数据框转换为zoo 类系列。我们绘制它并给出接近结尾处显示的图表。

    library(zoo)
    z <- read.zoo(DF); z
    ##         0    0.3361    0.6723    1.0084    1.3445 
    ## -0.007388  0.014361  0.001699  0.015404  0.009594 
    
    plot(z)
    

    2) ts

    由于时间间隔有规律,另一种可能性是我们可以将其转换为ts 类系列。 z 来自 (1)。

    tt <- as.ts(z); tt
    ## Time Series:
    ## Start = 0 
    ## End = 1.344548 
    ## Frequency = 2.97497746454571 
    ## [1] -0.007388  0.014361  0.001699  0.015404  0.009594
    

    2a) (2) 的一个变体是将频率四舍五入到 3,因为它接近该频率。 tt 来自 (2)。

    tt3 <- ts(c(tt), start = start(tt), freq = round(frequency(tt))); tt3
    ## Time Series:
    ## Start = c(0, 1) 
    ## End = c(1, 2) 
    ## Frequency = 3 
    ## [1] -0.007388  0.014361  0.001699  0.015404  0.009594
    

    注意

    Lines <- "Second Current
    0.000000 -0.007388           
    0.336137 0.014361            
    0.672274 0.001699            
    1.008411 0.015404            
    1.344548 0.009594"
    DF <- read.table(text = Lines, header = TRUE)
    

    【讨论】:

      猜你喜欢
      • 2018-11-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      相关资源
      最近更新 更多