gpt4 book ai didi

r - 计算 R 中的时间差

转载 作者:行者123 更新时间:2023-12-03 11:13:42 25 4
gpt4 key购买 nike

我有超过 300 万条记录的数据,其中 start.time 和 end.time 作为两个变量。前 10 个 obs 如下:

   start.date start.time   end.date end.time
1 2012-07-13 15:01:32 2012-07-13 15:02:42
2 2012-07-05 18:26:31 2012-07-05 18:27:19
3 2012-07-14 20:23:21 2012-07-14 20:24:11
4 2012-07-29 16:09:54 2012-07-29 16:10:48
5 2012-07-21 14:58:32 2012-07-21 15:00:17
6 2012-07-04 15:36:31 2012-07-04 15:37:11
7 2012-07-22 18:28:31 2012-07-22 18:28:50
8 2012-07-09 21:08:42 2012-07-09 21:09:02
9 2012-07-05 09:44:52 2012-07-05 09:45:05
10 2012-07-02 18:50:47 2012-07-02 18:51:38

我需要计算 start.time 和 end.time 之间的差异。

我使用了以下代码:
mbehave11$diff.time <- difftime(mbehave11$end.time, mbehave11$start.time, units="secs")

但我收到此错误:
Error in as.POSIXlt.character(x, tz, ...) : 
character string is not in a standard unambiguous format
In addition: Warning messages:
1: In is.na.POSIXlt(strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz)) :
Reached total allocation of 1535Mb: see help(memory.size)

最佳答案

在进行日期/时间运算之前,您必须将字符串转换为日期对象。尝试这个:

a) 读取数据:

R> dat <- read.table(textConnection("start.date start.time end.date end.time
2012-07-13 15:01:32 2012-07-13 15:02:42
2012-07-05 18:26:31 2012-07-05 18:27:19
2012-07-14 20:23:21 2012-07-14 20:24:11"), header=TRUE)

b) 研究一项观察:
 R>  strptime( paste(dat[,1], dat[,2]), "%Y-%m-%d %H:%M:%S")
[1] "2012-07-13 15:01:32" "2012-07-05 18:26:31" "2012-07-14 20:23:21"

c) 在集合上工作,转换为数字:
 R> as.numeric(difftime(strptime(paste(dat[,1],dat[,2]),"%Y-%m-%d %H:%M:%S"),
strptime(paste(dat[,3],dat[,4]),"%Y-%m-%d %H:%M:%S")))
[1] -70 -48 -50
R>

大约七年后由下面的其他人编辑。

d) 只是为了解释结果 -70 -48 -50上面逐行查看示例:
[2012-07-13 15:01:32] - [2012-07-13 15:02:42] = -70 seconds,  
[2012-07-05 18:26:31] - [2012-07-05 18:27:19] = -48 seconds,
[2012-07-14 20:23:21] - [2012-07-14 20:24:11] = -50 seconds

关于r - 计算 R 中的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12649641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com