楼主: chloe0521
16216 15

[问答] 用R软件 如何补全 不连续的日期数据? [推广有奖]

11
紫血丹心 在职认证  发表于 2016-4-26 19:11:13 来自手机
数据库取数的时候就处理,leftjoin很简单的,没必要R处理数据,不合适

12
释梦涯 发表于 2016-4-26 23:14:36 来自手机
遇到过类似问题,用和@治感冒 一样的方法解决了。

13
kazenogyosya 在职认证  发表于 2016-5-9 11:14:05
jiangbeilu 发表于 2016-3-27 10:03
给你按照这个思路来:
感谢之至!!

14
kongbudeyagao 学生认证  发表于 2016-12-13 09:39:08
date1<- seq(from=as.Date('2006/01/01'), to=as.Date('2016/08/03'), by='1 day'

http://blog.csdn.net/trisyp/article/details/52276392

15
LQB1994 学生认证  发表于 2024-5-13 00:04:36
  1. completeDate<-function(originalDate){
  2.     require(lubridate)
  3.     originalDate$date <- as.Date(originalDate$date,format='%Y-%m-%d')
  4.     originalDate$dateID_original <- c(1:nrow(originalDate))
  5.     date_start <- ymd(originalDate$date[1])
  6.     date_end <- ymd(originalDate$date[length(originalDate$date)])
  7.     completeDate <- data.frame(date= date_start + days(0:as.numeric(date_end - date_start)))
  8.     completeDate$dateID_full <- c(1:nrow(completeDate))
  9.     mergedDate<-merge(completeDate, originalDate, by="date", all=TRUE)
  10.     return(mergedDate)
  11. }

  12. originalDate <-  data.frame(date = as.Date(c(ymd("2010-03-30") , ymd("2010-03-30"))))
  13. Date_pk <- completeDate(originalDate)
复制代码

16
赵安豆 发表于 2024-5-15 09:24:32
在R中,你可以使用`complete()`函数从`tidyr`包来补全不连续的日期。首先,确保你已经安装了`tidyr`包,如果没有,可以通过运行`install.packages("tidyr")`进行安装。然后,你可以按照以下步骤操作:

```R
# 假设你的数据集叫做df,日期列是'date',数值列是'value'
library(tidyr)

# 将日期列转换为日期格式(如果还不是)
df$date <- as.Date(df$date, format = "%Y-%m-%d")

# 补全日期并用NA填充缺失的数值
df_filled <- df %>%
  complete(date = seq(min(date), max(date), by = "day"),
            fill = list(value = NA))

# 输出结果
print(df_filled)
```

这段代码将根据你的数据集中的最小和最大日期生成一个连续日期序列,并用NA填充缺失的数值。完成此操作后,所有不连续的日期都会被补充进来。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 19:36