r - 如何将秒数缩短为分钟间隔?
问题描述
我的数据排列如下:
Data <- data.frame(Seconds = c(4, 33, 46, 64, 78, 94, 100, 123, 150, 166, 183),
Margin = c(0, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4))
我希望Margin
在 1、2 和 3 分钟时获得。因此,我的预期输出将如下所示:
MinuteData <- data.frame(Minutes = c(1, 2, 3),
Margin = c(0, 2, 4))
我该怎么做呢?
解决方案
您可以使用cut
/findInterval
将数据以秒为单位划分为分钟,并选择每分钟的最后一个值。
library(dplyr)
Data %>%
group_by(Minutes = findInterval(Seconds, seq(0, max(Seconds), 60))) %>%
summarise(Margin = last(Margin))
# Minutes Margin
# <int> <dbl>
#1 1 0
#2 2 2
#3 3 4
#4 4 4
这将最后一个值视为新分钟,如果您只想考虑完整的分钟,可以删除最后一行。
这也可以用基数 R 编写:
with(Data, tapply(Margin, findInterval(Seconds, seq(0, max(Seconds), 60)),
function(x) x[length(x)]))
推荐阅读
- javascript - 如何对直接在浏览器中导入的嵌入式 javascript 进行单元测试
- activemq-artemis - 如果现有消费者死亡,消息分组如何影响消息的分发?
- python - 为什么不能调用vscode中定义的函数?
- mysql - 如何在 SQL 中选择字符串的一部分
- javascript - NuxtPress 标签、类别、分类法等
- java - OpenCV - 如何在 Android 中设置全屏相机视图?
- reactjs - 如何在 github pages 中的 react 网页中进行更改?
- django - Django 中的模块
- github - GitHub GraphQL API:获取提交的标签
- php - 播种机创建的用户可以登录,注册用户不能