【发布时间】:2019-10-29 18:44:59
【问题描述】:
我有以下带有 UNIX 时间戳的数据框 (mydf):
1543748345000
1543760946000
1543752164000
1543720144000
1543752713000
1543781064000
1543753688000
1543765145000
…
(n = 200,000)
我将这些转换为日期格式,使用:
mydf <- as.POSIXct(as.integer(as.numeric(as.character(mydf)) / 1000.0),origin='1970-01-01', tz="GMT")
这很好用,我得到了带有日期和准确时间的有序数据:
2018-12-01 00:07:05
2018-12-01 00:09:04
2018-12-01 00:25:42
…
- 问题) 这是基于我的系统时间,因此是我的时区 (CET +1),还是我必须再次转换它?
现在假设我想生成 x-Minutes 块(例如 30 分钟)来计算在 x-分钟时间范围内我有多少观察,例如:
From | To | Count
2018-12-01 00:00:00 | 2018-12-01 00:30:00 | 3
2018-12-01 00:30:00 | 2018-12-01 01:00:00 | 6
2018-12-01 01:00:00 | 2018-12-01 01:30:00 | 5
…
同时,我的数据框中还有其他一些数值变量,我想在新的 x-minutes-chunks-data-frame 中获取平均值。 (例如,前三个观察值在第一个块中(= 一个观察值),在这里我想要这三个观察值的每个变量的平均值)。
- 问题) 你知道我怎样才能有效地做到这一点吗?
干杯:)
编辑:
mydf <- data.frame("content" = c(replicate(10,"Here is Text")),
"replies" = c(1,2,3,2,5,2,6,2,6,3),
"credits" = c(4,7,3,6,2,11,7,10,9,0),
"unix_timestamp" = c("2018-12-01 00:07:05 GMT", "2018-12-01 00:09:04 GMT", "2018-12-01 00:25:42 GMT", "2018-12-01 00:28:40 GMT",
"2018-12-01 01:09:11 GMT", "2018-12-01 02:19:05 GMT", "2018-12-01 03:29:06 GMT", "2018-12-01 04:06:30 GMT",
"2018-12-01 04:29:06 GMT", "2018-12-01 05:29:16 GMT"))
我的目标:
data.frame("count" = c(4,0),
"mean_replies" = c(2,0),
"mean_credits" = c(5,0),
"from" = c("2018-12-01 00:00:00 GMT","2018-12-01 00:30:00 GMT"),
"to" = c("2018-12-01 00:30:00 GMT", "2018-12-01 01:00:00 GMT"))
【问题讨论】:
标签: r date dataframe datetime merge