簡體   English   中英

使用 Lubridate Package 為 R 中的時間序列數據輸入改變年份和月份列

[英]Mutate Year with Month Column for a Time Series Data Input in R Using Lubridate Package

我有這個時間序列數據框如下:

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列的時間序列 object,以便我可以使用ts function 來過濾起點和終點,如ts(ts, start = starts, frequency = 12) R 應該知道2022是一年,對應的1:12是它的月份,同樣的事情應該適用於 2021。我更喜歡lubridate package。

pacman::p_load(
dplyr,
lubridate)

更新

我現在使用unite function 來自dplyr package。

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

也許這個?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM