r - 使用 R 使用时间和时间表之间的差异来分析巴士延误
问题描述
我的论文有问题。
我有一个数据框,其中包含巴士站、到达巴士站的日期和时间,我没有 gps 数据,它通过每 30 秒发送一次的 gps 信号进行引导,但它使用巴士站 ID 直到它达到了一个新的领域,以及其他可能对这个问题并不重要的领域。
然后我使用以下命令将时间日期列分成单独的列:
Hours <- format(as.POSIXct(strptime(x$xcol,"%d-%m-%Y %H:%M:%S",tz="")) ,format = "%H:%M")
我能够将它们分开,但它们是角色类。然后我上传了巴士实际时间表,它上传为 POSIXct,它带来了日期和时间,我只想要时间。然后我想做一些类似 diff time 之类的事情。
Example:
df2$DATA_TRAMA
[1] 25-1-2010 07:37:26 25-1-2010 07:38:24 25-1-2010 07:39:56 25-1-2010 07:41:45 25-1-2010 07:42:36
[6] 25-1-2010 07:43:26 25-1-2010 07:44:15 25-1-2010 07:45:44 25-1-2010 07:46:57 25-1-2010 07:47:47
[11] 25-1-2010 07:49:04 25-1-2010 07:50:15 25-1-2010 07:51:46 25-1-2010 07:52:27 25-1-2010 07:54:22
[16] 25-1-2010 07:55:09 25-1-2010 07:57:12 25-1-2010 08:00:07 25-1-2010 08:01:11 25-1-2010 08:02:45
[21] 25-1-2010 08:06:38 25-1-2010 08:13:33 25-1-2010 08:17:55 25-1-2010 08:19:42 25-1-2010 08:20:40
[26] 25-1-2010 08:22:46 25-1-2010 08:25:35 25-1-2010 08:26:17 25-1-2010 08:28:01 25-1-2010 08:29:42
以上是我想分开的日期时间列的结果,因为我只对时间感兴趣
为了将它们分开,我使用以下命令:
Hours <- format(as.POSIXct(strptime(df2$DATA_TRAMA,"%d-%m-%Y %H:%M:%S",tz="")) ,format = "%H:%M")
#output "15:44" "23:24" "19:15" "20:52" "07:46" "01:55"
Dates <- format(as.POSIXct(strptime(df2$DATA_TRAMA,"%d-%m-%Y %H:%M",tz="")) ,format = "%d-%m-%Y")
#output "27/27/2015" "23/23/2015" "31/31/2015" "20/20/2015" "23/23/2015" "31/31/2015"
df2$Dates <- Dates
df2$Hours <- Hours
和阶级一样,性格。
str(df2$Dates)
chr [1:1088222] "25-01-2010" "25-01-2010" "25-01-2010" "25-01-2010" "25-01-2010" "25-01-2010" ...
但我想要的是它是 POSIXct 或类似的,以便应用 difftimes 并查看时间差异以了解延迟是什么。
至于时间表,我有一个数据框,它已经作为 POSIXct 导入
str(horidat)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 75 obs. of 23 variables:
$ CORD4: POSIXct, format: "1899-12-31 06:25:00" "1899-12-31 06:45:00" "1899-12-31 07:00:00" ...
$ PRL8 : POSIXct, format: "1899-12-31 06:26:00" "1899-12-31 06:46:00" "1899-12-31 07:01:00" ...
$ PRDJ2: POSIXct, format: "1899-12-31 06:28:00" "1899-12-31 06:48:00" "1899-12-31 07:03:00" ...
$ SCAT1: POSIXct, format: "1899-12-31 06:29:00" "1899-12-31 06:49:00" "1899-12-31 07:04:00" ...
但是对于 horidat 数据框架(时间表),我希望它也只有时间而不改变课程。问题是我只知道如何以与上述相同的方式进行操作,然后也会变成字符。
之后,我想查看时间之间的差异以查看延迟。但要做到这一点,它们都必须采用相同的格式,对吧?我认为要使用difftime
他们必须是POSIXct的功能,对吗?
当我尝试转换其中一个时,出现以下错误:
df2$Hours<-as.POSIXct(df2$Hours)
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
我的问题是将这些变量转换为正确的格式,以便我可以使用它们,每当我尝试计算时间之间的差异以及延迟时。
有谁知道我该如何克服这个问题?
解决方案
推荐阅读
- java - OSError: [WinError 126] JVM DLL not found - 无法理解问题
- python - 在 Python 3 中从文本文件(非列表)中删除空字符串
- java - 如何使用 RequestSpecBuilder 放心地发送路径参数?
- firebase - 测试运行完成后一秒钟,Jest 没有退出。firebase rt 数据库
- go - 获取嵌套结构
- powerbi - 如何在卡片视觉上执行钻取(尊重过滤器上下文)?
- c++ - 无法将变量“ML”声明为抽象类型“MyList”
' 使用带有虚函数的模板时 - c# - 使用 xslt 转换从 xml 数组中获取最后一项
- java - Spring 集成,消息端点与消息路由器
- google-apps-script - Google Form AppScript - 查看时项目选项消失,但它显示在编辑视图中?