[英]How to create and populate dummy rows in tidyverse?
我正在處理一些月度數據,我想通過創建和填充一些虛擬行將其轉換為每日數據,正如問題所暗示的那樣。
例如,假設我有以下數據:
date index
2013-04-30 232
2013-05-31 232
2013-06-30 233
有沒有一種“簡單”的方法,最好是通過tidyverse
,假設我在整個月內保持索引不變,我可以將上述數據轉換為每日數據? 例如,我想為四月創建另外 29 行,范圍從2013-04-01
到2013-04-29
,該月最后一天的索引為四月的232
。 這同樣適用於 rest 個月(我有比這三個月更多的數據)。
任何直觀的建議將不勝感激:)
使用tidyr
的complete
和fill
你可以這樣做:
dat <- structure(list(
date = structure(c(15825, 15856, 15886), class = "Date"),
index = c(232L, 232L, 233L)
), class = "data.frame", row.names = c(
NA,
-3L
))
library(tidyr)
dat |>
complete(date = seq(as.Date("2013-04-01"), as.Date("2013-06-30"), "day")) |>
fill(index, .direction = "up")
#> # A tibble: 91 × 2
#> date index
#> <date> <int>
#> 1 2013-04-01 232
#> 2 2013-04-02 232
#> 3 2013-04-03 232
#> 4 2013-04-04 232
#> 5 2013-04-05 232
#> 6 2013-04-06 232
#> 7 2013-04-07 232
#> 8 2013-04-08 232
#> 9 2013-04-09 232
#> 10 2013-04-10 232
#> # … with 81 more rows
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.