从 R 中的分钟数据创建 15 分钟的时间间隔?

2024-01-01

我有一些数据,其格式如下:

time     count 
00:00    17
00:01    62
00:02    41

所以我有从 00:00 到 23:59 的时间,并且每分钟有一个计数器。我想以 15 分钟为间隔对数据进行分组,这样:

time           count
00:00-00:15    148   
00:16-00:30    284

我尝试过手动执行此操作,但这很累人,所以我确信必须有一个函数或某物可以轻松完成此操作,但我还没有弄清楚如何执行此操作。

我真的很感激一些帮助!

非常感谢!


对于 POSIXct 格式的数据,您可以使用cut函数创建 15 分钟分组,然后按这些组进行聚合。下面的代码展示了如何在base R并与dplyr and data.table包。

首先,创建一些假数据:

set.seed(4984)
dat = data.frame(time=seq(as.POSIXct("2016-05-01"), as.POSIXct("2016-05-01") + 60*99, by=60),
                 count=sample(1:50, 100, replace=TRUE))

Base R

cut将数据分为 15 分钟组:

dat$by15 = cut(dat$time, breaks="15 min")
                   time count                by15
1   2016-05-01 00:00:00    22 2016-05-01 00:00:00
2   2016-05-01 00:01:00    11 2016-05-01 00:00:00
3   2016-05-01 00:02:00    31 2016-05-01 00:00:00
...
98  2016-05-01 01:37:00    20 2016-05-01 01:30:00
99  2016-05-01 01:38:00    29 2016-05-01 01:30:00
100 2016-05-01 01:39:00    37 2016-05-01 01:30:00

Now aggregate通过新的分组列,使用sum作为聚合函数:

dat.summary = aggregate(count ~ by15, FUN=sum, data=dat)
                 by15 count
1 2016-05-01 00:00:00   312
2 2016-05-01 00:15:00   395
3 2016-05-01 00:30:00   341
4 2016-05-01 00:45:00   318
5 2016-05-01 01:00:00   349
6 2016-05-01 01:15:00   397
7 2016-05-01 01:30:00   341

dplyr

library(dplyr)

dat.summary = dat %>% group_by(by15=cut(time, "15 min")) %>%
  summarise(count=sum(count))

数据表

library(data.table)

dat.summary = setDT(dat)[ , list(count=sum(count)), by=cut(time, "15 min")]

UPDATE:为了回答评论,对于这种情况,每个分组间隔的终点是as.POSIXct(as.character(dat$by15)) + 60*15 - 1。换句话说,分组间隔的终点是从间隔开始算起的 15 分钟减去 1 秒。我们添加 60*15 - 1 因为POSIXct以秒为单位。这as.POSIXct(as.character(...))是因为cut返回一个因子,这只是将其转换回日期时间,以便我们可以对其进行数学计算。

如果您希望终点为下一个间隔之前最接近的分钟(而不是最近的秒),您可以as.POSIXct(as.character(dat$by15)) + 60*14.

例如,如果您不知道休息间隔,因为您选择了休息次数并让 R 选择间隔,则可以通过执行以下操作找到要添加的秒数max(unique(diff(as.POSIXct(as.character(dat$by15))))) - 1.

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

从 R 中的分钟数据创建 15 分钟的时间间隔? 的相关文章

  • 为什么 sapply 的缩放速度比样本大小的 for 循环慢?

    假设我想采用向量 X 2 1 N 并将 e 计算为每个元 素的指数 是的 我认识到最好的方法就是通过向量化 exp X 但这样做的目的是将 for 循环与 sapply 进行比较 我通过逐步尝试三种方法 一种使用 for 循环 两种以不同方
  • 我可以使用哪个 R 函数来查找两条线的交点?

    我刚刚研究了 stackoverflow 上所有的 在 R 中寻找交集 问题 它们要么是关于曲线 要么是关于分布像这个 https stackoverflow com questions 20519431 finding point of
  • 如何在 R 中的 for 循环内将值存储在向量中

    我正在开始使用 R 但我对以下问题感到非常沮丧 我试图将 for 循环内完成的某些计算的值存储到我之前定义的向量中 问题是如何进行索引 因为for循环迭代代码的次数取决于用户的输入 所以变量i不一定要从1开始 它可以从80开始 for举个例
  • 行对名称中具有特定模式的列求和

    我有一个像这样的数据表 DT lt ata table data table ref rep 3L 4L nb 12 15 i1 c 3 1e 05 0 044495 0 82244 0 322291 i2 c 0 000183 0 155
  • R Shiny:如何将无功值从闪亮模块返回到主服务器功能?

    我有一个简单的玩具示例 它使用 add removeBtn 模块在 第一个 模块中添加和删除 UI 我需要跟踪单击 添加 删除 的次数 如果我不使用模块 这很容易 但我试图在嵌套模块的上下文中执行此操作 代码如下 但基本上 我似乎无法访问主
  • 在r中的某个阈值处破坏 cumsum() 函数

    例如我有以下代码 cumsum 1 100 我想打破它 如果一个元素 i 1 大于3000 我怎样才能做到这一点 因此 而不是这个结果 1 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 15
  • 为什么这个 R ggplot2 代码会显示一个空白的显示设备?

    虽然 SO 通常不用于帮助解决错误 但这个显示了特别简单且特别烦人的行为 如果你是一个ggplot2用户 您可以在 10 秒或更短的时间内重现它 正如这个 GitHub 问题 ggplot gtable 创建空白显示 https githu
  • R:按组,测试一个变量的每个值是否存在于另一个变量中

    我有一个数据框架 结构如下 a lt c 1 1 1 2 2 2 3 3 3 3 4 4 b lt c 1 2 3 1 2 3 1 2 3 4 1 2 c lt c NA NA 2 NA 1 1 NA NA 1 1 NA NA df lt
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 要在子集中显示的非数字条目的维恩图

    我有以下数据框 SET1 SET2 SET3 par1 par2 par1 par2 par3 par2 par3 par4 par5 我想制作一个维恩图 其中所有这些 parX 元素都显示在各自的子集中 即作为标签 而不仅仅是重叠元素的数
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o
  • 如何在 R 中的 dygraph 标题中使用 UTF-8 字符

    使用 Rstudio Windows8 当我使用 dygraph 函数绘制时间序列时 在尝试在主标题中使用 UTF 8 字符时遇到问题 library dygraphs dygraph AirPassengers main T tulo 这
  • R:单纯形错误:在下标赋值中不允许使用 NA

    对于以下具有目标函数和约束的最小化 boot simplex返回错误 Error in tab pr lt tab pr tab pr pc pv o tab pr NAs are not allowed in subscripted as
  • 计算 R 行中的非零条目数

    我有以下类型的数据 mode1 mode2 mode3 1 8 1 0 2 0 0 0 3 6 5 4 4 1 2 3 5 1 1 1 数据使用dput structure list mode1 c 8L 0L 6L 1L 1L mode2
  • 在 R 上安装 TDA 包时出错:目标“diag.o”的配方失败

    使用 Ubuntu 16 04 和 R 3 4 1 安装 R 包 TDA 时收到错误消息 它似乎与制作 CGAL diag cpp 和 或 diag o 最后的完整错误打印输出 有关 我仔细看了这个 在 R 上安装 TDA 包时出错 htt
  • R 数据结构的运算效率

    我想知道是否有任何关于操作效率的文档R 特别是那些与数据操作相关的 例如 我认为向数据框添加列是有效的 因为我猜您只是向链接列表添加一个元素 我想添加行会更慢 因为向量保存在数组中C level你必须分配一个新的长度数组n 1并将所有元素复
  • R:改变堆积条形图的颜色

    library ggplot2 df2 lt data frame supp rep c VC OJ each 3 dose rep c D0 5 D1 D2 2 len c 6 8 15 33 4 2 10 29 5 head df2 g
  • 更改绘图区域背景颜色

    我想使用我们公司的颜色在 R 中制作一个图表 这意味着所有图表的背景应为浅蓝色 但绘图区域应为白色 我正在寻找答案 发现绘制一个矩形就可以完成这项工作 几乎 然而 绘图区域现在是白色的 并且图形不再可见 这可能吗 getSymbols SP
  • 更改ggplot2中的字体

    曾几何时 我改变了我的ggplot2字体使用windowsFonts Times windowsFont TT Times New Roman 现在 我无法摆脱这一切 在尝试设置family in ggplot2 theme 当我用不同的字
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • 有效地复制/复制/备份数据库表 - mysql

    Reason 我被分配运行一些脚本来推进一个网站 这是一个梦幻足球网站 该网站的多个实例位于不同的域中 有些拥有超过 8 万用户 每个用户应该拥有一个由 15 名玩家组成的团队 因此 某些表具有 No users x No players
  • 使用 JavaScript 检查/取消检查无线电输入

    我有一个无线电输入组 如果选中了某个收音机 然后我再次单击它 它将变为未选中状态 有没有办法获取收音机以前的状态onClick event
  • 动态添加刻度标记?

    我想知道是否有任何方法可以在渲染图形后动态添加scale x标记 也许通过像这样的函数 zingchart exec myChart addscalexmarker type line range 14 label text label y
  • 从绝对路径获取流?

    我有这个方法 public RasImage Load Stream stream 如果我想加载一个像这样的网址 string url http localhost Application1 Images Icons hand jpg 我怎
  • ASP.NET MVC 的 Windows Azure 存储模拟器连接字符串?

    我正在搜索需要定义才能使用 Windows Azure 存储模拟器的连接字符串 到目前为止 我找到的所有消息来源都表明这些连接字符串应该转到ServiceDefinition and ServiceConfiguration文件位于 Win
  • NSDictionary 的 objectForKey: 依赖于同一性还是相等性?

    假设我有一个名为Person拥有以下财产socialSecurityNumber 并且这个类覆盖了isEqual 当社会保障号属性相等时返回 true 的方法 并说我已经放了一堆实例Person进入一个NSDictionary 如果我现在实
  • Angular CLI (7.0.5) 用于开发和生产的不同资产?

    是否可以使用 Angular CLI 7 0 5 使用不同的资产进行开发和生产 对于生产我想要资产 assets projects example src favicon ico 为了发展我想要资产 assets projects exam
  • Python 将日期时间小时设置为特定时间

    我试图将日期定为昨天晚上 11 30 这是我的代码 import datetime yesterday datetime date today datetime timedelta days 1 PERIOD yesterday strft
  • 外部混洗:从内存中混洗大量数据

    我正在寻找一种方法来整理内存不适合的大量数据 大约 40GB 我有大约 3000 万个可变长度的条目 存储在一个大文件中 我知道该文件中每个条目的开始和结束位置 我需要对内存中不适合的数据进行洗牌 我想到的唯一解决方案是对包含以下数字的数组
  • 在 bash 脚本中运行 tail -f 特定时间

    我需要一个可以运行一系列的脚本tail f命令并将它们输出到文件中 我需要的是为了tail f运行一定的时间来 grep 特定的单词 之所以是一定时间 是因为其中一些值不会立即显示 因为这是实时日志 我怎样才能运行这样的东西 比如说 20
  • 引用 LSF 作业数组中的作业索引

    我试图将作业数组中作业的索引作为参数传递给另一个 bash 脚本 numSims 3 numTreatments 6 uses numTreatments top rows of parameters csv maxFail 10 j 1
  • 如何获取 apache kafka 中的所有主题?

    RequestMapping value getTopics method RequestMethod GET ResponseBody public Response getAllTopics ZkClient zkClient new
  • 触发点击事件在 IE10 中不起作用[重复]

    这个问题在这里已经有答案了 我需要添加onclick事件到图像 因此当我单击图像时 它将触发文件打开对话框 但在 IE10 下不起作用 button on click function upload trigger click upload
  • 创建适合以下参数的假数据集:N、平均值、标准差、最小值和最大值

    有没有办法创建一个适合以下参数的假数据集 N 平均值 标准差 最小值和最大值 我想创建一个包含 187 个整数比例分数的样本 其平均值为 67 标准差为 17 观察值在 30 210 范围内 我正在尝试演示有关统计功效的概念课程 并且我想创
  • C语言如何跳过文件的前两行?

    我是 C 编程新手 我很困惑如何跳过文件中的前两行 我尝试使用fgets and fscanf 但我不知道该怎么做 假设我有一个文件txt像这样 1 Username Test 2 Password 12345 3 4 那么如何从第 3 行
  • 在 Linux 上用 C++ 移动文件的更快方法

    我正在尝试使用 C 在 Linux 上移动文件 问题是 源文件和目标文件夹可能位于不同的分区 所以我不能简单地移动文件 好的 我决定复制该文件并删除旧文件 bool copyFile string source string destina
  • 非阻塞 tun/tap 文件描述符上的 read() 收到 EAGAIN 错误

    我想从非阻塞 tun tap 文件描述符读取 IP 数据包tunfd我设置了tunfd作为非阻塞并在 libevent 中为其注册 READ EV 事件 当事件触发时 我先读取前20个字节来获取IP头 然后 阅读其余部分 nr bytes
  • MS Access 使用 Group By 进行舍入精度

    为什么员工每个月的平均得分相加后不等于员工 曾经 的平均得分 Average SELECT Avg r score AS rawScore FROM ET INNER JOIN Employee AS e ON ET employeeId
  • 数据注释隐藏属性/字段

    我有一个模型 class Address public int AddressID get set public string Street get set public string City get set public string
  • 从 R 中的分钟数据创建 15 分钟的时间间隔?

    我有一些数据 其格式如下 time count 00 00 17 00 01 62 00 02 41 所以我有从 00 00 到 23 59 的时间 并且每分钟有一个计数器 我想以 15 分钟为间隔对数据进行分组 这样 time count