R 中的时间序列长格式到宽格式?

问题描述 投票:0回答:1

在 R 中,我有一个长格式的时间序列 ts_big,如下所示,其中包含 A 和 B 类型的观察结果:

ts1<-tibble(dates=c("2023-01-01","2023-02-01","2023-03-01",
                     "2023-04-01"), numbers=c(1.0, 2.8, 2.9, 2.0),
                  types=replicate(4, "A"))

ts2<-tibble(dates=c("2023-01-01","2023-02-01"), 
            numbers=c(0.3, 0.9),
            types=replicate(2, "B"))

ts_big<-rbind(ts1, ts2)

A 类在 4 个时间(“2023-01-01”、“2023-02-01”、“2023-03-01”)有观测值,而 B 类仅在其中 2 个相同时间有观测值(“2023- 01-01”,“2023-02-01”)。有没有办法将这个小标题ts_big转换为宽格式,其中可能有一个单一日期列,一列用于A型数字,一列用于B型数字(也许类型 B 没有给定日期的观察值的行中具有 NA 值)?

我知道这可以通过创建一堆向量然后将它们编译成 tibble/dataframe 来手动完成,但我想知道是否有一个函数或简单的过程可以用于比我的小规模更大/复杂的示例此处提供。

r dataframe time-series tibble
1个回答
0
投票
library(tidyr)

ts_big |>
  pivot_wider(names_from = types,
              values_from = numbers)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.