首页 > 解决方案 > 如何在R中将df转换为时间序列

问题描述

我有一个数据框,其中包含数字类型的年份列和数字类型的 avgtemp 列,那么如何将其转换为格式良好的时间序列

例子:

 year AvgTempZScore
   <dbl>         <dbl>
 1  1835         0.109
 2  1836         0.168
 3  1837         0.177
 4  1838         0.143
 5  1839         0.188
 6  1840         0.198
 7  1841         0.200
 8  1842         0.230
 9  1843         0.237
10  1844         0.194

力量

tibble [179 × 2] (S3: tbl_df/tbl/data.frame)
 $ year         : num [1:179] 1835 1836 1837 1838 1839 ...
 $ AvgTempZScore: num [1:179] 0.109 0.168 0.177 0.143 0.188 ...

标签: rtime-seriesarima

解决方案


这对使用函数很有用ts()

db=structure(list(year = c(1835,1836,1837,1838,1839,1840,1841,1842,1843,1844), 
               AvgTempZScore = c(0.109,0.168,0.177,0.143,0.188,0.198,0.200,0.230,0.237,0.194)), 
          row.names = c(1:10),
          class = "data.frame")
str(db)
#'data.frame':  10 obs. of  2 variables:
# $ year         : num  1835 1836 1837 1838 1839 ...
# $ AvgTempZScore: num  0.109 0.168 0.177 0.143 0.188 0.198 0.2 0.23 0.237 0.194
db = ts(db,frequency = 1,start=1835, end=1844)
str(db)
#Time-Series [1:10, 1:2] from 1835 to 1844: 1835 1836 1837 1838 1839 ...
#- attr(*, "dimnames")=List of 2
#..$ : NULL
#..$ : chr [1:2] "year" "AvgTempZScore"#```

推荐阅读