簡體   English   中英

如何在 tidyverse 中創建和填充虛擬行?

[英]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-012013-04-29 ,該月最后一天的索引為四月的232 這同樣適用於 rest 個月(我有比這三個月更多的數據)。

任何直觀的建議將不勝感激:)

使用tidyrcompletefill你可以這樣做:

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.

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