- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 data.table“场景”的新手,所以如果我的问题过于简单,我深表歉意。我经常处于必须应用某些分析或对按唯一 ID 分组的某些数据进行子集化的位置。通常,每个唯一 ID 大约有 1,000 行,大约有 30 个唯一 ID。所以,我被建议切换到 data.table 而不是试图找出 lapply 或 sapply 或 plyr 包。
这是我的数据类型的示例
structure(list(ID = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), dt = structure(c(1138366975,
1138370472, 1138374064, 1138377669, 1138381264, 1138384873, 1138388503,
1138399312, 1138402842, 1138406507, 1138413700, 1138417261, 1138420848,
1138424444, 1138428071, 1138431695, 1138435287, 1138438938, 1138442428,
1138446098), class = c("POSIXct", "POSIXt"), tzone = "GMT")), .Names = c("ID",
"dt"), row.names = c(NA, -20L), class = "data.frame")
我把它转换成一个 data.table
X = data.table(test)
将我的“ key ”设置为个人
setkey(X,ID)
然后目标是以小时为单位计算时差(目前我希望这会很容易)。因此,要使用 Time2-Time1 来获取每个连续位置之间的小时和分钟数(在本例中为 ID)。
X[, diff:=c(NA,diff(dt)),by = ID]
此处的 diff 命令以分钟为单位进行计算,但我想以最有效的方式将其转换/四舍五入为小时,同时仍将该值保留为 POSIX 或时间对象。我知道我可能会创建另一个列并将 diff 除以 60。但我希望有一些方法可以只键入 "hours"
或 "minutes"
或其他内容某处。因为我不了解 data.table 如何处理时间。我尝试使用 difftime
命令在 data.frame
中使用 for
循环执行此操作,但它非常麻烦并将数据链接回原始数据数据框让我感到困惑,因为我不精通 for
循环。
将数据按小时计算后,我只想选择相隔 0.5 小时、相隔 4 小时和相隔 12 小时的数据。我还没有想出如何在 data.table 中做
最佳答案
这是一种方法,但可能不是最有效的...
X[ , diff := c( NA_character_ , difftime( tail( dt , -1 ) , head( dt , -1 ) , units = "hours" ) ) , by = ID ]
# ID V1
# 1: 1 NA
# 2: 1 0.971388888888889
# 3: 1 0.997777777777778
# 4: 1 1.00138888888889
# 5: 2 NA
关于r - 使用data.table按组计算和格式化行之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20544422/
我对 EPOCH 时间有疑问。 我需要计算两个数据包之间的时间差。我不太确定如何: printf("Epoch Time: %d:%d seconds\n", header->ts.tv_sec, h
我正在尝试了解数字旋转的速度。我有一个程序,其中计数器从 0 开始。 每次用户单击按钮“加 1”。它将计数器递增 1。 计数器最大值为 255。在 255 之后它回到 0。 现在我想显示从 0 到递增
基本上我想做的是根据 SIP 信令获取通话持续时间。 我有一个包含如下所示记录的表,我正在尝试编写一个返回以下内容的 SELECT 语句: id callid date
您好,我需要有关 MySQL 数据库查询的帮助。 我有一个看起来像这样的表: ID TRACKID DATE Name Action 38
细节。我有包含以下列的注释表。 ID - INT(3) Date - DateTime Note - VARCHAR(100) Tile - Varchar(100
午夜过后我很难计算时间: String time = "15:00-18:05"; //Calculating OK //String time = "22:00-01:05"; //Not
我使用 XML 从 MySQL 数据库中抓取了两个日期,如下所示。我想获得以秒为单位的时差。 我写了这个脚本,但它给出了“NaN” function show(){ var t1 = new Dat
如何在 MYSQL phpMyAdmin 数据库中以 (TIME 00:00:00) 格式更新另一个字段(整列)的时间差 当我在 PHP 中执行此操作时,我不断收到 0:00:00 并且没有结果。其
我的表单中有两个字段,用户可以在其中选择输入时间(开始时间、结束时间),我想在更改这些字段时重新计算另一个字段的值。 我想做的是获取 2 次之间的小时数。因此,例如,如果我的开始时间为 5:30,结束
我想使用 Date 和 Calendar 类计算 java 中两个日期/时间之间的差异。我的格式是“2012-01-24 12:30:00 PM”。 我已经实现了我自己的方法,也用谷歌搜索它以与其他人
MySQL 服务器上的访客数据库如下所示id 是主键整数类型,firstname 和 lastname 是文本类型,访客 id 是整数类型 id firstname lastname
我是一名优秀的程序员,十分优秀!