使用Lubridate包将R中的时间序列数据输入的年与月列进行变异

c90pui9n  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(108)

我有这个时间序列数据框架如下:

df <- read.table(text = 
                     "Year Month Value
2021  1        4
2021  2       11
2021  3       18
2021  4        6
2021  5       20
2021  6        5
2021  7       12
2021  8        4
2021  9       11
2021  10      18
2021  11       6
2021  12      20
2022  1       14
2022  2       11
2022  3       18
2022  4        9
2022  5       22
2022  6       19
2022  7       22
2022  8       24
2022  9       17
2022  10      28
2022  11      16
2022  12      26",
header = TRUE)

我想把这个数据框变成一个只有date列和value列的时间序列对象,这样我就可以像ts(ts, start = starts, frequency = 12)一样用ts函数过滤起点和终点,R应该知道2022是一年,对应的1:12是它的月份。同样的事情应该适用于2021年。我会更喜欢lubridate包。

pacman::p_load(
dplyr,
lubridate)
    • 更新**

我现在使用dplyr包中的unite函数。

df|>
  unite(col='date', c('Year', 'Month'), sep='')
fnx2tebb

fnx2tebb1#

也许这个?

df |>
  tidyr::unite(col='date', c('Year', 'Month'), sep='-') |>
  mutate(date = lubridate::ym(date))
#          date Value
# 1  2021-01-01     4
# 2  2021-02-01    11
# 3  2021-03-01    18
# 4  2021-04-01     6
# 5  2021-05-01    20
# 6  2021-06-01     5
# 7  2021-07-01    12
# 8  2021-08-01     4
# 9  2021-09-01    11
# 10 2021-10-01    18
# 11 2021-11-01     6
# 12 2021-12-01    20
# 13 2022-01-01    14
# 14 2022-02-01    11
# 15 2022-03-01    18
# 16 2022-04-01     9
# 17 2022-05-01    22
# 18 2022-06-01    19
# 19 2022-07-01    22
# 20 2022-08-01    24
# 21 2022-09-01    17
# 22 2022-10-01    28
# 23 2022-11-01    16
# 24 2022-12-01    26

相关问题