【问题标题】:Convert Data Frame to time Series将数据帧转换为时间序列
【发布时间】:2017-02-15 20:57:00
【问题描述】:
Year    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2015    75  74  60  57  67  131 299 138 329 333 307 213
2016    141 174 72  219 139 163 160 82  150 177 138 138

以上是我正在处理的数据。我已将数据导入 R,最初导入为 data.frame

使用xlsx库从xlsx文件导入数据

class(test)
"data.frame"

我希望将类转换为ts。我已经尝试了一些现有的方法,但我仍然无法完成。

【问题讨论】:

    标签: r dataframe time-series


    【解决方案1】:

    这样的事情似乎有效:

    ts(df[-1], frequency = 1, start = df[1, 1], end = df[2, 1])
    

    输出:

    Time Series:
    Start = 2015 
    End = 2016 
    Frequency = 1 
         Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    2015  75  74  60  57  67 131 299 138 329 333 307 213
    2016 141 174  72 219 139 163 160  82 150 177 138 138
    

    【讨论】:

    • 感谢您的更新。这种方法效果很好
    • 非常欢迎您@PraveenRKaruppannan。乐于助人:)
    【解决方案2】:

    你可以的

    test = ts(unlist(df[,-1]), start = df[1,1], frequency = ncol(df[,-1]))
    
    test
    #     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    #2015  75 141  74 174  60  72  57 219  67 139 131 163
    #2016 299 160 138  82 329 150 333 177 307 138 213 138
    
    class(test)
    #[1] "ts"
    
    #Obtain the frequency
    unique(cycle(test))
    #[1]  1  2  3  4  5  6  7  8  9 10 11 12
    
    #Obtain the years
    unique(floor(time(test)))
    #[1] 2015 2016
    

    【讨论】:

      猜你喜欢
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多