data.table:计算时间移动​​窗口内的行数

2024-03-08

library(data.table)
df <- data.table(col1 = c('B', 'A', 'A', 'B', 'B', 'B'), col2 = c("2015-03-06 01:37:57", "2015-03-06 01:39:57", "2015-03-06 01:45:28", "2015-03-06 02:31:44", "2015-03-06 03:55:45", "2015-03-06 04:01:40"))

对于每一行,我想计算具有相同“col1”值的行数以及该行时间之前过去 10 分钟的窗口内的时间(包括)

我运行下一个代码:

df$col2 <- as_datetime(df$col2)
window = 10L
(counts = setDT(df)[.(t1=col2-window*60L, t2=col2), on=.((col2>=t1) & (col2<=t2)), 
                     .(counts=.N), by=col1]$counts)

df[, counts := counts]

并得到下一个错误:

Error in `[.data.table`(setDT(df), .(t1 = col2 - window * 60L, t2 = col2), : Column(s) [(col2] not found in x

我想要如下结果:

col1    col2              counts
B   2015-03-06 01:37:57     1
A   2015-03-06 01:39:57     1
A   2015-03-06 01:45:28     2
B   2015-03-06 02:31:44     1
B   2015-03-06 03:55:45     1
B   2015-03-06 04:01:40     2

一个可能的解决方案:

df[.(col1 = col1, t1 = col2 - gap * 60L, t2 = col2)
   , on = .(col1, col2 >= t1, col2 <= t2)
   , .(counts = .N), by = .EACHI][, (2) := NULL][]

这使:

   col1                col2 counts
1:    B 2015-03-06 01:37:57      1
2:    A 2015-03-06 01:39:57      1
3:    A 2015-03-06 01:45:28      2
4:    B 2015-03-06 02:31:44      1
5:    B 2015-03-06 03:55:45      1
6:    B 2015-03-06 04:01:40      2

关于您的方法的一些注意事项:

  • 你不需要setDT因为你已经构建了df with data.table(...).
  • You on- 语句未正确指定:您需要用 a 分隔连接条件,并且不带有&。例如:on = .(col1, col2 >= t1, col2 <= t2)
  • Use by = .EACHI获取每一行的结果。

另一种方法:

df[, counts := .SD[.(col1 = col1, t1 = col2 - gap * 60L, t2 = col2)
                   , on = .(col1, col2 >= t1, col2 <= t2)
                   , .N, by = .EACHI]$N][]

这给出了相同的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

data.table:计算时间移动​​窗口内的行数 的相关文章

随机推荐

  • Python 3 最佳实践参数顺序

    In this question https stackoverflow com questions 9872824 calling a python function with args kwargs and optional defau
  • 时区感知。 python 中的时区天真

    我正在 python 中使用日期时间对象 我有一个函数需要一段时间才能找到当时和现在之间的差异 def function past time now datetime now diff now past time 当我在将 Past tim
  • Android 11 下载文件到下载文件夹不起作用

    目前我正在尝试使用 DownloadManager 下载文件 但这不起作用 下载开始 但下载后下载文件夹内没有文件 这就是我的代码 private void downloadAddon try DownloadManager Request
  • 创建动态 Chrome 主题

    我正在尝试为 Google Chrome 构建一个主题扩展 它将使用远程图像源定期更新背景图像 即图像存储在网络服务器上 而不是本地 问题是主题不允许包含脚本元素 有什么建议如何解决这个限制吗 如果背景图像是指新标签页的背景 则可以将其替换
  • 无法禁用 gridExtra 的 R markdown 输出(附加注释)

    在我的 r markdown 报告中 我使用了 2 个块 First r include FALSE echo FALSE results asis 我在其中加载所有包并进行计算 第二个 r fig margin TRUE fig widt
  • 自 C++17 起,构造函数的模板参数推导是否允许显式指定某些类模板参数?

    除了构造函数模板参数推导的最明显用法之外 我可以想象一些更复杂的用例 其中我们仅推导模板类的部分参数 例如 std pair
  • 使用 JavaScript 隐藏/显示高级选项

    我正在制作一个 HTML 表单 我希望某些字段位于 高级选项 下 我想创建一个 高级选项 链接 可能带有 加号 这样当用户单击链接或符号时 就会显示这些高级字段 我怎样才能在 JavaScript 中做到这一点 我尝试在 Google 上搜
  • resque 调度程序作业的奇怪行为

    所以一些背景 我在这里得到了一些建议 在 Ruby on Rails 中安排事件 https stackoverflow com questions 15710013 scheduling events in ruby on rails 今
  • 这个联合是否违反了严格的别名?浮点寄存器怎么样

    union Uint32 Integer Float32 Real Field 我必须使用该联合来实现一些 IEEE 技巧 这会破坏严格的别名吗 GCC 不会发出任何警告 即使使用迂腐的严格别名 也尝试过 GCC 4 5 和 4 6 但据我
  • 当 WebRequest 无法找到该前缀的创建者时出现“NotSupportedException”

    我有一个非常奇怪的问题WebRequest in a ServiceStackWeb 应用程序 由 Mono 上的 XSP 托管 看起来请求模块的注册工作方式非常奇怪 我在用WebRequest创建一个 HTTP 请求 但它失败了 因为它无
  • memcached.dll 是否存在?

    Windows 是否存在 memcached 不是 memcache 扩展 我浏览了旧的答案 但没有找到任何东西 它不存在 而且不太可能很快存在 主要问题不是扩展本身 而是 libmemcached 库 该库几乎不能移植到除 Linux 系
  • NodeJS - 上传到s3而不保存在本地文件系统中

    我收到来自 REST API 中的 POST 响应的一些文本 我想为此直接在 s3 中创建一个文本文件 我偶然发现的所有示例都是使用本地文件然后上传它 有没有办法直接上传而不保存在本地系统 您可以直接将 req 通过管道传输到 s3 upl
  • 如何使用 FOSRestBundle 将通用 URI 前缀添加到控制器的所有路由?

    我已经开始为使用 Symfony 开发的应用程序实现控制器 这是我第一次尝试同时使用 Symfony 和 PHP 来完成该任务 我通常使用 Java 以及 JAX RS 或 Spring 我跟着本教程 https jeremycurny c
  • 如何从jar资源中提取目录(和子目录)?

    我有一个目录 带有子目录 模板 它作为资源保存在 jar 文件中 跑步期间 我需要将其 模板 提取到 tmp 目录 更改一些内容 最后将其发布为压缩工件 我的问题是 如何轻松提取这些内容 我正在尝试 getResource 以及 getRe
  • Push.default“匹配”和“简单”有什么区别

    我已经使用 Git 一段时间了 但我从来不需要自己设置一个新的远程存储库 而且我一直很好奇这样做 我一直在阅读教程 但我对如何获得感到困惑git push上班 如果我简单地使用git push 它要求我查看要指向的 默认分支 它为我提供的这
  • uiautomation iOS uilabel 值

    我试图通过执行以下操作从 UILabel 获取值target logElementTree 但我无法看到标签实际设置的值 它只显示我们根据accessibilityLabel设置的字符串 self settlementDate isAcce
  • 设计 MarkerClusterer 图标?

    我正在使用 MarkerCluster js 在我的 google 地图 api 中创建集群 这些簇按照我想要的方式工作 但我想要的样式与黄色 蓝色和红色圆圈不同 我试图使用 MarkerStyleOptions 它说您有一系列样式 其中最
  • 将 CSV 加载到 Pandas MultiIndex DataFrame

    我有一个 719mb 的 CSV 文件 如下所示 from to dep freq arr code mode header row RGBOXFD RGBPADTON 127 0 27 99999 2 RGBOXFD RGBPADTON
  • 代理背后的 GitHub Windows 客户端

    我正在尝试让 Windows 版 GitHub 客户端正常运行 我在一家企业Windows 7的 https en wikipedia org wiki Windows 7位于公司代理和防火墙后面的 x64 计算机 遵循各种其他帖子并尝试环
  • data.table:计算时间移动​​窗口内的行数

    library data table df lt data table col1 c B A A B B B col2 c 2015 03 06 01 37 57 2015 03 06 01 39 57 2015 03 06 01 45 2