gpt4 book ai didi

r - 仅给定日期向量,扩展(不相等的)日期点之间的数据

转载 作者:行者123 更新时间:2023-12-04 12:09:35 26 4
gpt4 key购买 nike

其他问题围绕着开始和结束日期。 (请参阅以下示例 Given start date and end date, reshape/expand data for each day between (each day on a row) Expand rows by date range using start and end date

我的问题有所不同,因为我只有一个日期列,我想将不相等的日期范围转换为每日计数。这个特定的例子创建了一次处理工作现场的 worker 数量。不同的船员在不同的日期来

提供的简要数据框如下:

dd <- data.frame(date=as.Date(c("1999-03-22","1999-03-29","1999-04-08")),work=c(43,95,92),cumwork=c(43,138,230))

我希望数据看起来像这样:

dw <- data.frame(date=c(seq(as.Date("1999-03-22"),as.Date("1999-04-10"),by= "day")),
work=c(rep(43,7),rep(95,10),rep(92,3)),
cumwork=c(rep(43,7),rep(138,10),rep(230,3)))

我已经坚持了一段时间。任何帮助将不胜感激!

更新(7/5/2017):正如@Scarabee 所指出的,数据框“dd”中的日期应该是日期格式。已更新代码以反射(reflect)这一点

最佳答案

一种可能的方式:

首先,将您感兴趣的日期序列创建为单列数据框:

v <- data.frame(date = seq(min(dd$date), as.Date("1999-04-10"), by="day"))

接下来,加入您的原始数据框并填充缺失值,例如使用 dplyrzoo:

library(dplyr)
library(zoo)

v %>%
left_join(dd, by = "date") %>%
na.locf

NB:我想您的数据框 dd 实际上包含日期(而不是因素)。

dd <- data.frame(date=as.Date(c("1999-03-22","1999-03-29","1999-04-08")),work=c(43,95,92),cumwork=c(43,138,230))

关于r - 仅给定日期向量,扩展(不相等的)日期点之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893482/

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