gpt4 book ai didi

r - 如何在数据框中仅添加缺少的日期

转载 作者:行者123 更新时间:2023-12-04 17:15:23 24 4
gpt4 key购买 nike

我在下面提到了数据框:

Date        Val1     Val2
2018-04-01 125 0.05
2018-04-03 458 2.99
2018-04-05 354 1.25

考虑到 Sys.Date(),我只想添加缺少的日期(这里例如 Sys.Date() 是 2018-04-06)在相应的 val1 和 val2 为 0 的数据帧中。

我试过了:
t2<-merge(data.frame(Date= seq(min(ymd(t1$Date)), max(ymd(date)), by = "days")), t1, by = "Date", all = TRUE)

所需数据框:
Date        Val1     Val2
2018-04-01 125 0.05
2018-04-02 0 0
2018-04-03 458 2.99
2018-04-04 0 0
2018-04-05 354 1.25
2018-04-06 0 0

最佳答案

这可以通过 complete 来完成

library(tidyverse)
df1 %>%
complete(Date = seq(Date[1], Sys.Date(), by = "1 day"),
fill = list(Val1 = 0, Val2 = 0))

如果我们需要为 fill 传递多个变量,创建我们需要的列列表 fill
nm1 <- setdiff(names(df1), "Date") #in this example excluding the Date
nm2 <- setNames(as.list(rep(0, length(nm1))), nm1)

然后将其作为参数传递给 fill
df1 %>% 
complete(Date = seq(Date[1], Sys.Date(), by = "1 day"), fill = nm2)
# A tibble: 35 x 3
# Date Val1 Val2
# <date> <dbl> <dbl>
# 1 2018-04-01 125 0.05
# 2 2018-04-02 0 0
# 3 2018-04-03 458 2.99
# 4 2018-04-04 0 0
# 5 2018-04-05 354 1.25
# 6 2018-04-06 0 0
# 7 2018-04-07 0 0
# 8 2018-04-08 0 0
# 9 2018-04-09 0 0
#10 2018-04-10 0 0
# ... with 25 more rows

关于r - 如何在数据框中仅添加缺少的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50192024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com