R 用零值填充时间数据的间隙

R 用零值填充时间数据的间隙,r,R,在我的数据中,我有不规则的时间戳和相应的值。除了不规则性之外,我还有很大的差距,这在我的数据中是没有价值的。但是,我知道对于那些间隙,值为零,我想用value=0的行来填充间隙。我该怎么做 资料 请用我提供的文件查看数据并将其读入R library(readr) df <- read_csv("data.csv", col_types = list(time = col_datetime(), value = col_double())) 库(readr) df老实说,我还没有尝试过它(

在我的数据中,我有不规则的时间戳和相应的
值。除了不规则性之外,我还有很大的差距,这在我的数据中是没有价值的。但是,我知道对于那些间隙,值
为零,我想用
value=0的行来填充间隙。我该怎么做

资料 请用我提供的文件查看数据并将其读入R

library(readr)
df <- read_csv("data.csv", col_types = list(time = col_datetime(), value = col_double()))
库(readr)

df老实说,我还没有尝试过它(由于其他原因,我不得不切换到Python,并在那里解决了它,没有抽出时间来尝试),但我非常肯定答案会是肯定的。我只想在这里为其他读者写这篇文章,提出同样的问题。

老实说,我还没有尝试过它(由于其他原因,我不得不切换到Python,并在那里解决了它,也没有抽出时间来尝试),但我很确定这将是答案。我只是想在这里为其他有同样问题的读者写这篇文章。

请使用
dput(head(DF,10))
发布数据集的子集,而不是外部链接。有关详细信息,请参阅。@hNu:Done。但这并没有显示差距。然后共享一个说明问题的数据集……您的
dput
没有显示问题。使用重现问题的部分数据。然而,我想你我不确定你在追求什么,但我认为
padr
软件包在这里可以提供很好的帮助。请提供一个完整的数据集,以捕获有关
dput
的问题以及该部分数据所需的解决方案。请使用
dput(head(DF,10))
发布数据集的子集,而不是外部链接。有关详细信息,请参阅。@hNu:Done。但这并没有显示差距。然后共享一个说明问题的数据集……您的
dput
没有显示问题。使用重现问题的部分数据。然而,我想你我不确定你在追求什么,但我认为
padr
软件包在这里可以提供很好的帮助。请提供一个完整的数据集,以捕获dput的问题以及该部分数据所需的解决方案。
library(readr)
df <- read_csv("data.csv", col_types = list(time = col_datetime(), value = col_double()))
library(dplyr)
library(lubridate)
threshold_time = dseconds(2)
time_prev = df$time[1]
addrows = data.frame()
for (i in seq(2, nrow(df),1)){
  time_current <- df$time[i]
  if ((time_current - time_prev) > threshold_time){
    time_add <- seq(time_prev, time_current, dseconds(0.1))
    addrows = bind_rows(addrows, data.frame(time=time_add, value=rep(0, length(time_add))))
  }
  time_prev <- time_current
}

addrows$type <- 'filled'
df$type <- 'orig'
df_new <- bind_rows(df, addrows)

library(ggplot2)
ggplot(df_new, aes(time,value,color=type)) + geom_point()