Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从固定的起始点开始计算小时数,该值随变量级别的不同而变化

如何从固定的起始点开始计算小时数,该值随变量级别的不同而变化
EN

Stack Overflow用户
提问于 2019-07-08 10:37:16
回答 1查看 30关注 0票数 0

dataframe df1汇总了通过时间(Datetime)检测到的不同个体(ID)。举个简短的例子:

代码语言:javascript
运行
AI代码解释
复制
library(lubridate)

df1<- data.frame(ID= c(1,2,1,2,1,2,1,2,1,2),
                 Datetime= ymd_hms(c("2016-08-21 00:00:00","2016-08-24 08:00:00","2016-08-23 12:00:00","2016-08-29 03:00:00","2016-08-27 23:00:00","2016-09-02 02:00:00","2016-09-01 12:00:00","2016-09-09 04:00:00","2016-09-01 12:00:00","2016-09-10 12:00:00")))

> df1
   ID            Datetime
1   1 2016-08-21 00:00:00
2   2 2016-08-24 08:00:00
3   1 2016-08-23 12:00:00
4   2 2016-08-29 03:00:00
5   1 2016-08-27 23:00:00
6   2 2016-09-02 02:00:00
7   1 2016-09-01 12:00:00
8   2 2016-09-09 04:00:00
9   1 2016-09-01 12:00:00
10  2 2016-09-10 12:00:00

我想计算每一行自第一次检测到该个体以来的小时数(Hours_since_begining)。

我预计会出现这样的情况(它可能包含一些错误,因为我是手工计算的):

代码语言:javascript
运行
AI代码解释
复制
> df1
   ID            Datetime Hours_since_begining
1   1 2016-08-21 00:00:00                    0
2   2 2016-08-24 08:00:00                    0
3   1 2016-08-23 12:00:00                   60 # Number of hours between "2016-08-21 00:00:00" (first time detected the Ind 1) and "2016-08-23 12:00:00" 
4   2 2016-08-29 03:00:00                  115 
5   1 2016-08-27 23:00:00                  167 # Number of hours between "2016-08-21 00:00:00" (first time detected the Ind 1) and "2016-08-27 23:00:00" 
6   2 2016-09-02 02:00:00                  210
7   1 2016-09-01 12:00:00                  276
8   2 2016-09-09 04:00:00                  380
9   1 2016-09-01 12:00:00                  276
10  2 2016-09-10 12:00:00                  412

有人知道怎么做吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-08 10:46:31

您可以这样做:

代码语言:javascript
运行
AI代码解释
复制
library(tidyverse)
# first get min datetime by ID
min_datetime_id <- df1 %>% group_by(ID) %>% summarise(min_datetime=min(Datetime))
# join with df1 and compute time difference
df1 <- df1 %>% left_join(min_datetime_id) %>% mutate(Hours_since_beginning= as.numeric(difftime(Datetime, min_datetime,units="hours")))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56933137

复制
相关文章
散列查找和哈希查找_散列检索
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。建立了关键字与存储位置的映射关系,公式如下:
全栈程序员站长
2022/11/15
9070
Hash表(二)——散列冲突
在Hash表(一)——Hash函数已经分析了散列冲突产生的原因,我们一般使用开放寻址法和链表法来解决。
用户3470542
2019/07/10
1.4K0
Hash表(二)——散列冲突
使用awk命令批量删除指定范围的账号
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
1.2K0
几道和散列(哈希)表有关的面试题
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。
五分钟学算法
2019/03/19
1.4K0
几道和散列(哈希)表有关的面试题
分离链接的散列散列代码实现
散列 散列为一种用于以常数平均时间执行插入,删除和查找的技术。一般的实现方法是使通过数据的关键字可以计算出该数据所在散列中的位置,类似于Python中的字典。关于散列需要解决以下问题: 散列的关键字如何映射为一个数(索引)——散列函数 当两个关键字的散列函数结果相同时,如何解决——冲突 散列函数 散列函数为关键字->索引的函数,常用的关键字为字符串,则需要一个字符串->整数的映射关系,常见的三种散列函数为: ASCII码累加(简单) 计算前三个字符的加权和$\sum key[i] * 27^{i}$ (不太
月见樽
2018/04/27
1.6K0
SQL 删除外键列
alter table tableName drop column columnName  --(其中,tableName为表名,columnName为列名)
星哥玩云
2022/08/17
1.6K0
散列/散列函数「建议收藏」
每个关键字被映射到从0-TableSize-1这个范围中的某个数,并且被放到适当的单元中。这种映射就叫做散列函数
全栈程序员站长
2022/08/28
9120
散列/散列函数「建议收藏」
散列算法与散列码
一、引入 1 /** 2 * Description:新建一个类作为map的key 3 */ 4 public class Groundhog 5 { 6 protected int number; 7 8 public Groundhog(){ 9 } 10 public Groundhog(int number) 11 { 12 this.number = number; 13 } 14 15 @Overr
JMCui
2018/03/15
1.5K0
散列算法与散列码
Hash(散列)冲突解决 线性探测再散列和二次探测再散列
例如  哈希函数为: H(key) =  key %13,key 为关键字,采用开放地址法中的线性探测再散列解决冲突,依次输入
用户2965768
2018/12/28
16.7K0
C++:哈希:闭散列哈希表
哈希表就是通过哈希映射,让key值与存储位置建立关联。比如,一堆整型{3,5,7,8,2,4}在哈希表的存储位置如图所示:
二肥是只大懒蓝猫
2023/03/30
4630
C++:哈希:闭散列哈希表
散列
将一个元素的关键码和存储位置之间建立对应的函数关系 Hash( ), 使得每个关键码与结构中的唯一的存储位置相对应:
Rikka
2022/02/07
1.8K0
SqlServer批量删除表
最近需要删除一批曾经用来存放日志的表,这些表数量很多而且占用了大量的磁盘空间,不得不删除,释放相应的磁盘空间。但是一张一张的手动来删除比较麻烦,在网上找了小技巧,只需要三步,就可以实现批量删除。
我是李超人
2020/08/20
2.9K0
散列
选择键值,冲突的时候采取不同的策略 散列函数: 简单的散列函数: 1 int hash(const string & key,int tableSize) 2 { 3 int hashVal = 0; 4 for(int i = 0; i < key.length();++i) 5 { 6 hashVal + = key[i]; 7 } 8 return hashVal % tableSize; 9 } 比较好的散列函数: 1 int hash( c
用户1154259
2018/01/17
8200
【Oracle笔记】详解表分区的方式(范围、散列、列表、复合)
   范围分区是根据数据库表中某一字段的值的范围来划分分区,例如:user表过于庞大时,将user表根据一周7天分成7个分区。
程序员云帆哥
2022/05/12
2.1K0
散列冲突
概念:如果当一个元素被插入时与一个已经插入的元素散列到相同的值, 那么就会产生冲突, 这个冲突需要消除。解决这种冲突的方法有几种:本章介绍两种方法:分离链接法和开放定址法
全栈程序员站长
2022/08/27
6020
Hash散列[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146553.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/27
6790
hashmap 的重新散列和装载因子
HashMap 的装载因子是 0.75,用人话说就是当 HashMap 的容量达到定义容量的 75% 的时候,HashMap 会进行扩容,当 HashMap 进行扩容的时候就会重新散列(rehashing)。
HoneyMoose
2022/11/30
6000
hashmap 的重新散列和装载因子
Python:说说字典和散列表,散列冲突的解决原理
散列表其实是一个稀疏数组(总是有空白元素的数组称为稀疏数组)。在一般书中,散列表里的单元通常叫做表元(bucket)。在 dict 的散列表当中,每个键值对都占用一个表元,每个表元都有两个部分,一个是对键的引用,一个是对值的引用。因为每个表元的大小一致,所以可以通过偏移量来读取某个表元。
丹枫无迹
2019/03/15
2K0
hashmap 的重新散列和装载因子
HashMap 的装载因子是 0.75,用人话说就是当 HashMap 的容量达到定义容量的 75% 的时候,HashMap 会进行扩容,当 HashMap 进行扩容的时候就会重新散列(rehashing)。
HoneyMoose
2022/12/03
4760
hashmap 的重新散列和装载因子
散列函数
散列的概念属于查找,它不以关键字的比较为基本操作,采用直接寻址技术。在理想情况下,查找的期望时间为O(1)。
233333
2019/09/24
9290

相似问题

MATLAB中不同长度信号的互相关

23

不同长度的C#中的两个信号相关

34

python中两个信号的归一化互相关

25

归一化-具有不同采样率的信号

147

如何对颤振中[-1,1]之间的数据进行归一化

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文