以下代码使用POSIXct格式的一个变量timeStamp创建一个10行数据表。

library(data.table)
dt <- data.table(timeStamp = seq( as.POSIXct("2017-07-01 14:51:50"), by=60, len=10))

我想将timeStamp舍入到最近的分钟。

此命令在timeStamp2的每一行中放置一个列表,而不是修改POSIXct变量。

dt[, timestamp2 := round(timeStamp, "mins")]

下面的代码行执行我想要的(在此示例中向上舍入)但在数据表中不起作用。

timestamp2 <- round(dt$timeStamp, "mins")

我正在使用data.table版本1.10.4-3和MRAN R版本3.4.1。

#1楼 票数:4 已采纳

来自?round.POSIXt

类“POSIXlt”或“Date”的对象。

这意味着POSIX对象的round入结果是POSIXlt对象。

因此,您需要将round函数包装在as.POSIXct()以使其返回到POSIXct

dt[, timestamp2 := as.POSIXct(round(timeStamp, "mins"))]

  ask by JerryN translate from so

未解决问题?本站智能推荐:

1回复

带有POSIXct上的trunc的R数据表

在这里无法弄清楚我在做什么错。 在“天”列中给我一个长度为9的列表? 给我一个长度为25的向量。 在“ day.test”列中再次给我一个长度为9的列表?
1回复

使用数据表的Setorder,可能无法工作posixct毫秒

我想用setorder对数据表进行排序。 输出: Setorder无法正确排序数据表,我不确定为什么。 是否有可能以某种方式提高灵敏度或其他解决方案?
1回复

在data.table中舍入POSIXct

使用来自该问题的相同数据,在data.table v1.9.2中将日期时间舍入到第二位存在问题。 我找到了使用lubridate的解决方案: 有没有data.table方法?
5回复

R:数据表。如何使用fwrite正确保存日期?

我有一个数据集。 我可以选择从 Stata 文件或 SPSS 文件在 R 上加载它。 在这两种情况下,它都已正确加载到haven包中。 日期被正确识别。 但是当我使用 data.table 的 fwrite 函数将它保存到磁盘时。 fwrite(ppp, "ppp.csv", sep=",", co
1回复

使用大数据加速as.POSIXct/在data.table中存储为POSIXct的问题

我试图从一个大的.csv( POSIXct行)中提取POSIXct登录时间的列表,然后使用cut函数将每15分钟的登录次数制成表格。 给定数据集的大小,我正在使用data.table函数。 我设法实现了我的目标,但是遇到了以下一些问题: #selective fread dt <-
1回复

使用R中的data.table将POSIXct列连接到Date列

在以下示例中,有人可以向我解释为什么2015-03-31的日期更改为1034-04-03? 我的目的是让date从dt1到dt2的Date格式,而不是POSIXct由id (不同的id会有不同的date )。 我该怎么办? 以下是我想要的: 编辑 : 我尝试过以下方法: 不
1回复

有没有一种方法可以在r中不超过内存的情况下舍入日期?

我正在处理一个数据集,我将 posixct 日期四舍五入到具有 8800 万行的 data.table 一列的最接近小时。 我用的是圆形。 date by base 和 round_date by lubridate,两者都超出内存,所以无法完成。 最后,我将数据集分成 4 个相等的部分,将必要的
2回复

并行数据表操作

我的脚本中有一个 data.table 对象,我需要将单独的日期和时间列转换为 POSIXct 对象。 我正在使用fastPOSIXct()转换为POSIXct 。 我发现data.table操作存在一些瓶颈来做到这一点。 主要问题是在转换为POSIXct之前连接字符串和POSIXct转换本身。 我