gpt4 book ai didi

r - 基于 R 中的日期列使用连续日期扩展数据框

转载 作者:行者123 更新时间:2023-12-02 18:09:49 27 4
gpt4 key购买 nike

我想根据“日期”列扩展数据框,以便在当前日期之间按时间顺序出现新的日期行。我的“日期”列是按时间顺序排列的,跨度为 5 年,并且包含我想忽略的重复日期。我希望新行的相应 Group 和 Draw 行为“NA”。

zz <- "Date Group Draw
1 2006-05-11 bb T
2 2006-05-11 bb F
3 2006-05-14 aa T
4 2006-05-16 aa T
5 2006-05-20 cc F
6 2006-05-20 bb F
7 2006-05-21 aa T"

Data <- read.table(text=zz, header = TRUE)

所以我希望我的新数据框看起来像这样:

xx <- "Date Group Draw
1 2006-05-11 bb T
2 2006-05-11 bb F
3 2006-05-12 NA NA
4 2006-05-13 NA NA
5 2006-05-14 aa T
6 2006-05-15 NA NA
7 2006-05-16 aa T
8 2006-05-17 NA NA
9 2006-05-18 NA NA
10 2006-05-19 NA NA
11 2006-05-20 cc F
12 2006-05-20 bb F
13 2006-05-21 aa T"

Output <- read.table(text=xx, header = TRUE)

任何帮助将不胜感激。我是 R 新手,一直在尝试手动执行此操作。

最佳答案

我认为这应该可以正常工作:

merge(
x = data.frame(
Date = seq.Date(min(df$Date), max(df$Date), by = "day")
),
y = df,
all.x = TRUE
)
# Date Group Draw
# 1 2006-05-11 bb TRUE
# 2 2006-05-11 bb FALSE
# 3 2006-05-12 <NA> NA
# 4 2006-05-13 <NA> NA
# 5 2006-05-14 aa TRUE
# 6 2006-05-15 <NA> NA
# 7 2006-05-16 aa TRUE
# 8 2006-05-17 <NA> NA
# 9 2006-05-18 <NA> NA
# 10 2006-05-19 <NA> NA
# 11 2006-05-20 cc FALSE
# 12 2006-05-20 bb FALSE
# 13 2006-05-21 aa TRUE
<小时/>

这一切都是为了创建一个跨越实际数据范围的日期序列,然后执行左连接。

<小时/>

同样的想法,使用data.table:

dt[dt[,.(Date = seq.Date(min(Date), max(Date), by = "day"))], on = .(Date)]
# Date Group Draw
# 1: 2006-05-11 bb TRUE
# 2: 2006-05-11 bb FALSE
# 3: 2006-05-12 NA NA
# 4: 2006-05-13 NA NA
# 5: 2006-05-14 aa TRUE
# 6: 2006-05-15 NA NA
# 7: 2006-05-16 aa TRUE
# 8: 2006-05-17 NA NA
# 9: 2006-05-18 NA NA
# 10: 2006-05-19 NA NA
# 11: 2006-05-20 cc FALSE
# 12: 2006-05-20 bb FALSE
# 13: 2006-05-21 aa TRUE
<小时/>
zz <- "Date Group Draw
1 2006-05-11 bb T
2 2006-05-11 bb F
3 2006-05-14 aa T
4 2006-05-16 aa T
5 2006-05-20 cc F
6 2006-05-20 bb F
7 2006-05-21 aa T"

df <- read.table(
text = zz,
header = TRUE
)
df$Date <- as.Date(df$Date)

library(data.table)
dt <- data.table(read.table(text = zz, header = TRUE))[,Date := as.Date(Date)]

关于r - 基于 R 中的日期列使用连续日期扩展数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939734/

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