处理时间序列中的缺失值

2024-01-11

我正在处理时间序列数据,我需要有连续的时间戳,但在捕获时很少有数据时间戳点被遗漏,如下所示,

DF

ID Time_Stamp             A           B                 C
1  02/02/2018 07:45:00   123          567               434     
2   02/02/2018 07:45:01    
.....                  ...

5   02/02/2018 07:46:00   
6   02/02/2018 07:46:10    112          2323            2323

如示例所示df上面,时间戳是连续的,直到row 5但错过了捕获数据10 seconds之间5th and 6th row。我的数据框是关于60000 rows手动识别缺失值非常繁琐。 因此,我一直在寻找使用 R 自动化处理缺失值的过程

我的结果数据框如下,

ID Time_Stamp                     A           B                 C
1  02/02/2018 07:45:00           123          567               434     
2   02/02/2018 07:45:01    
.....                  ...

5   02/02/2018 07:46:00         mean(A)
5.1  02/02/2018 07:46:01        mean(A)     mean(b)         mean(c)
5.2  02/02/2018 07:46:02        mean(A)     mean(b)         mean(c) 
5.3  02/02/2018 07:46:03        mean(A)     mean(b)         mean(c) 
5.4  02/02/2018 07:46:04        mean(A)     mean(b)         mean(c)
5.5  02/02/2018 07:46:05        mean(A)     mean(b)         mean(c)
5.6  02/02/2018 07:46:06        mean(A)     mean(b)         mean(c)
5.7  02/02/2018 07:46:07        mean(A)     mean(b)         mean(c)
5.8  02/02/2018 07:46:08        mean(A)     mean(b)         mean(c)
5.9  02/02/2018 07:46:09        mean(A)     mean(b)         mean(c)
6   02/02/2018 07:46:10         112         2323            2323

请帮忙!


最好有一个具体的例子来显示具体的预期输出,这样就没有什么歧义和假设的空间。但是,我根据我的理解创建了一个虚拟数据,并尝试相应地解决它。

如果我理解正确的话,你会有每秒都有数据点的时间序列数据,但有时会缺少一些秒,你想用它来填充它mean该列的。

我们可以使用以下方法来实现这一点complete通过在之间的每一秒生成一个序列min and max Time_Stamp并通过以下方式填充缺失值mean在相应的列中。ID看起来像是每行的唯一标识符,所以用它填充row_number().

library(dplyr)
library(tidyr)

df %>%
  complete(Time_Stamp = seq(min(Time_Stamp), max(Time_Stamp), by = "sec")) %>%
  mutate_at(vars(A:C), ~replace(., is.na(.), mean(., na.rm = TRUE))) %>%
  mutate(ID = row_number()) 


# A tibble: 11 x 5
#   Time_Stamp             ID     A     B     C
#   <dttm>              <int> <dbl> <dbl> <dbl>
# 1 2018-02-02 07:45:00     1  123   567   434 
# 2 2018-02-02 07:45:01     2  234   100   110 
# 3 2018-02-02 07:45:02     3  234   100   110 
# 4 2018-02-02 07:45:03     4  176.  772.  744.
# 5 2018-02-02 07:45:04     5  176.  772.  744.
# 6 2018-02-02 07:45:05     6  176.  772.  744.
# 7 2018-02-02 07:45:06     7  176.  772.  744.
# 8 2018-02-02 07:45:07     8  176.  772.  744.
# 9 2018-02-02 07:45:08     9  176.  772.  744.
#10 2018-02-02 07:45:09    10  176.  772.  744.
#11 2018-02-02 07:45:10    11  112  2323  2323 

如果您检查最后 3 列的列均值,您可以看到这些值已被准确替换。

colMeans(df[3:5])
#     A      B      C 
#175.75 772.50 744.25 

data

df <- structure(list(ID = 1:4, Time_Stamp = structure(c(1517557500, 
1517557501, 1517557502, 1517557510), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), A = c(123L, 234L, 234L, 112L), B = c(567L, 
100L, 100L, 2323L), C = c(434L, 110L, 110L, 2323L)), class = "data.frame", 
row.names = c(NA, -4L))

看起来像

df

#  ID          Time_Stamp   A    B    C
#1  1 2018-02-02 07:45:00 123  567  434
#2  2 2018-02-02 07:45:01 234  100  110
#3  3 2018-02-02 07:45:02 234  100  110
#4  4 2018-02-02 07:45:10 112 2323 2323
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理时间序列中的缺失值 的相关文章

  • 在函数内部调用 clusterApply 时,性能会下降

    我遇到了一个奇怪的问题clusterApply 我已经能够尽可能地隔离它 如下所示 首先 我从全局环境运行以下代码 require parallel cl lt makeCluster rep localhost 20 SOCK xl lt
  • 将列表中的列转换为 R 中的数据框

    我有使用 R 创建的以下列表 set seed 326581 X1 rnorm 10 0 1 Y1 rnorm 10 0 2 data data frame X1 Y1 lst lt replicate 100 df smpl lt dat
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 将 VLMC 拟合到很长的序列

    我正在尝试将 VLMC 拟合到最长序列为 296 个状态的数据集 我这样做如下所示 Load libraries library PST library RCurl library TraMineR Load and transform d
  • 如何按 data.table 中的十分位数组计算统计数据

    我有一个 data table 想按组计算统计数据 R set seed 1 R DT data table a rnorm 100 b rnorm 100 这些组应该定义为 R quantile DT a probs seq 1 9 1
  • 使用 R 进行项目组织 [重复]

    这个问题在这里已经有答案了 可能的重复 统计分析和报告撰写的工作流程 https stackoverflow com questions 1429907 workflow for statistical analysis and repor
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • R:将 JSON 时间格式转换为 POSIX

    我有一个 JSON 字符串 并将其放入数据框中 我能够做到这一点 但我在使用 apply 函数之一将所有时间字符串转换为 POSIX 格式时遇到问题 See here https stackoverflow com questions 90
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 如何将 ggrough 图表另存为 .png

    说我正在使用R包裹ggrough https xvrdm github io ggrough https xvrdm github io ggrough 我有这个代码 取自该网页 library ggplot2 library ggroug
  • 从数据框创建稀疏矩阵

    我正在做一项作业 尝试为 Netflix 奖项数据构建协作过滤模型 我使用的数据位于 CSV 文件中 我可以轻松地将其导入到数据框中 现在我需要做的是创建一个稀疏矩阵 其中用户作为行 电影作为列 每个单元格都由相应的评级值填充 当我尝试绘制
  • 更改计划的开始日期以优化资源

    我有很多工作需要在特定的时间间隔执行 然而 我们每天完成这项工作的资源有限 因此 我正在尝试优化开始时间日期 开始时间日期只能向前移动 不能向后移动 以便每天使用的资源与我们的预算更加不相似 这些函数在下面的示例中使用 Function t
  • 检查单词是否存在于英语词典 r 中

    我正在对多个进行一些文本分析resume生成一个wordcloud using wordcloud包装连同tm用于在 R 中预处理文档语料库的包 我面临的问题是 检查语料库中的单词是否具有某种含义 即 它属于英语词典 如何一起挖掘 处理多份
  • 在多行中打印带有列名称的 R 数据框

    我有一个带有长列名称的 R 数据框 所以当我打印数据框时它太宽了 有没有一种简单的方法可以将数据框打印到屏幕上 并且列名出现在多行中 我知道我可以缩短名字 但我不想这样做 当奥斯卡的答案被接受时 我想这可能真的是一个答案 不幸的是 这只是复
  • R - Quantstart:多种股票的测试策略

    我正在使用一些指标构建基本交易策略 我的问题是我希望它在多个股票上运行 而不必指定我想要测试的每个单独的股票 目前我可以使用向量一次获取多个符号 如下所示 Get Shares from Yahoo Finance Stocks lt AS
  • 根据R中的前一行和当前行按组计算

    我可以根据 R 中的前一行和当前行进行计算 对于此数据框 df A B 1 2 2 2 2 3 3 4 5 5 B2 A2 0 5 B1 我可以使用这段代码来计算这个函数 for i in 2 nrow df B i lt 1 2 B i
  • 使用 R 交互式更改 Plotly 图像中的轴刻度(线性/对数)

    Goal 创建交互式下拉菜单 按钮来更新 R 中 Plotly 图形的轴比例 Issue 有很多关于创建的文档buttons https plot ly r custom buttons and 对数图 https plot ly r lo
  • 使用 purrr、broom 从许多单变量模型中获得整洁的输出

    我有一个由二进制结果列组成的数据框 y 和多个独立的预测列 x1 x2 x3 我想运行许多单变量逻辑回归模型 例如y x1 y x2 y x3 并将每个模型的指数系数 比值比 95 置信区间和 p 值提取到数据框 标题的行中 在我看来 使用

随机推荐

  • PySpark:从数据帧创建字典的字典?

    我有以下格式的数据 这些数据是从 Hive 获取到数据帧中的 date stock price 1388534400 GOOG 50 1388534400 FB 60 1388534400 MSFT 55 1388620800 GOOG 5
  • 如何在Windows中使用批处理文件删除包含特定字符串的文件?

    我的松下相机使用其愚蠢的 PHOTOfunSTUDIO 来导入照片 它按照片拍摄日期的名称创建文件夹 并将照片分别导入到这些文件夹中 到目前为止 一切都很好 但是 如果我在从相机中删除所有旧照片之前再次导入 则无论我如何更改该软件的设置 旧
  • 将 Docker 容器与 Mesos/Marathon 链接

    到目前为止 我使用 Mesos Marathon 和 Docker 来管理服务器群以及放置在服务器上的容器 取得了巨大成功 然而 我现在想更进一步 开始做一些事情 比如自动将 haproxy 容器链接到每个启动的主 docker 服务 或者
  • SQL Server 2012 CTE 查找分层数据的根或顶层父级

    我在尝试递归地遍历层次结构以查找组织结构中可能具有的所有后代节点的顶部节点时遇到问题multiple顶级节点 我正在尝试使用 SQL Server 2012 CTE 来执行此操作 但它不会递归到达每个分支的最顶层节点 我已经尝试完全按照与此
  • 我的 Web api 2 控制器需要路由

    我有一个返回 XML 的简单 WebApi2 控制器 但我无法使用我定义的路由正确添加另一个方法 namespace CBMI WebAPIservice Controllers public class MarkersController
  • 使用 QWebEngine 渲染图像

    我正在寻找替换QWebKit with QWebEngine在我的无头渲染器中 我初始化页面load 并将一个插槽连接到loadFinished 生成最终的 PNG 图像 这曾经工作得很好WebKit但失败了QWebEngine 代码如下
  • 在 Jekyll 上的 CSS 中使用 Liquid 诱惑来调整每页的 div 背景颜色

    我正在使用 Jekyll 和 Liquidwebsite http annawees github io 我一直坚持在 CSS 中使用 Liquid 来正确编译 我尝试为每个页面的边框使用不同的颜色 并将默认设置为黑色 我很欣赏你们的任何见
  • RealmList序列化问题(Realm/Gson/Intent)

    我在项目中使用了 Retrofit Gson 和 Realm 我有这门课Example需要是Serializable 如果没有 Realm 我会这样写 public class Example implements Serializable
  • HttpWebRequest 底层连接已关闭

    我在用HttpWebRequest to POST通过网络服务的字节数组图片 图片大小类似于byte 4096 Code HttpWebRequest webRequest HttpWebRequest WebRequest Create
  • 从 JNI 调用函数指针

    我已经在 cpp 中用原型实现了一个函数 MyFunction int size int 回调 UINT16 arg1 UINT16 arg2 第二个参数是一个函数指针 必须在java中实现 我怎样才能实现该功能 另外我如何在 JNI 中调
  • 关于使用 Async 和 Await C# 进行异步编程的问题[重复]

    这个问题在这里已经有答案了 我正在学习如何使用 Async 和 Await C 所以我得到了一个链接http msdn microsoft com en us library vstudio hh191443 aspx BKMK WhatH
  • 将 Rcpp 函数扩展到任何类型的输入向量

    我有以下函数 它执行一个简单的循环NumericVector并返回int类型值 Rcpp cppFunction int calc streak NumericVector x int i1 int i2 int cur streak 1
  • 在 matplotlib 中向 3d 箭袋图添加颜色

    我想要在 3d 箭袋图中具有与颜色图相对应的颜色 绘图的 2d 版本有一个可选数组 用于将颜色映射到箭头 如何在 3d 版本中创建相同的效果 3D 箭袋图是 1 4 中的一个全新功能 它 及其文档 可能仍然有点粗糙 在这种情况下 我们可以尝
  • 将字符串列表转换为排序的映射字符串长度作为键

    我有一个List
  • 动画汉堡导航

    我正在为我的网站创建一个完整的页面导航阴影 以便它在所有设备上都相同 目前我有两个按钮 一个用于当阴影在视野中时 一个用于当阴影不在视野中时 我想知道是否让一个按钮始终存在以便可以动画化会更好 我的目标是像squeeze动画片here ht
  • 固定大小缓冲区不能直接从“this”对象使用

    我使用结构来表示纯数据 其中一个字段是固定大小的缓冲区 如下所示 StructLayout LayoutKind Sequential Pack 2 unsafe struct ImageDosHeader private fixed us
  • 如何解决部署到heroku时rails中的更新捆绑器警告?

    出现以下警告该如何解决 我将 ruby 版本更新为 2 3 1 将 Rails 版本更新为 4 2 6 当我将应用程序推送到 heroku 时 我收到此警告 remote Cleaning up the bundler cache remo
  • 在 php 数据表中添加属性以用于 google 图表自定义 html 工具提示

    我正在尝试通过将自定义 html 工具提示添加到数据表中来在我的 google 图表中创建自定义 html 工具提示 现在我的数据表正在 PHP 中创建 如下所示 datatable array cols gt array array ty
  • 如何获取事务内SELECT语句的结果?

    我无法通过 PostgreSQL 文档 网络甚至 StackOverflow 获得有关这个简单问题的信息 我一定不明白这里的一些重要内容 我正在做一个简单的SELECT UPDATEPostgreSQL 中的事务 START TRANSAC
  • 处理时间序列中的缺失值

    我正在处理时间序列数据 我需要有连续的时间戳 但在捕获时很少有数据时间戳点被遗漏 如下所示 DF ID Time Stamp A B C 1 02 02 2018 07 45 00 123 567 434 2 02 02 2018 07 4