我想使用 R 中的 sqldf
包使用 SQL 查询对较大的表进行汇总。
较大的表iterationresults
具有以下列:Truck_ID
、纬度
、经度
、速度
、Idle_Events
、Date_Time
、state
、od
、trip_id
。
示例表
Truck_ID Latitude Longitude Speed Idle_Events Date_Time state od trip_id
TTI 039 31.70117 -106.3685 0 NA 2017-03-29 14:37:30 stop 0 217
TTI 039 31.70119 -106.3685 0 0 2017-03-29 14:37:31 stop 0 217
TTI 039 31.70120 -106.3685 0 0 2017-03-29 14:37:32 stop 0 217
TTI 039 31.70120 -106.3685 0 0 2017-03-29 14:37:33 stop 0 217
TTI 039 31.70119 -106.3685 0 1 2017-03-29 14:37:34 stop 0 217
TTI 039 31.70120 -106.3685 0 1 2017-03-29 14:37:35 stop 0 217
TTI 039 31.70120 -106.3685 0 1 2017-03-29 14:37:36 stop 0 217
TTI 039 31.70121 -106.3685 0 1 2017-03-29 14:37:37 stop 0 217
TTI 039 31.70121 -106.3685 0 1 2017-03-29 14:37:38 stop 0 217
TTI 039 31.70122 -106.3685 0 1 2017-03-29 14:37:39 stop 0 217
行数为49258。我需要根据trip_id
制作一个汇总表。我正在尝试使用 R
中的 sqldf
包运行以下 SQL 查询来创建新的汇总表 trips
。
SQL <- "SELECT Avg(speed) as [Average Speed]
FROM iterationresults
GROUP BY trip_id
ORDER BY trip_id"
trips <-sqldf(SQL)
我收到一条错误消息:
Error in rsqlite_bind_rows(rs@ptr, value) : Parameter 6 does not have length 49258.
我不确定这里出了什么问题。我是使用这个包的新手。
最佳答案
这是因为 data.frame 包含 POSIXlt
类型(Date_Time 列)。在将 POSIXlt
添加到我的 data.frame 后,我开始看到这个错误。
我不太确定这是一个错误还是一个“功能”;但我发现这个错误报告解释了它:https://github.com/r-dbi/RSQLite/issues/246
我在那里发布了有关该问题的后续问题。
关于mysql - 使用 sqldf 在 R 中运行 SQL 查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525123/