mysql - 使用 sqldf 在 R 中运行 SQL 查询时出错

标签 mysql sql-server r

我想使用 R 中的 sqldf 包使用 SQL 查询对较大的表进行汇总。

较大的表iterationresults具有以下列:Truck_ID纬度经度速度Idle_EventsDate_Timestateodtrip_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/

相关文章:

带有左连接的 mysql_fetch_assoc 导致返回 null id

mysql - 查询以从 SQL 中删除重复项

sql - 无法写入属性 IsFileStream

r - 是否有一个 R 函数可以根据分别匹配同一列的两列来合并两个数据框?

Rcpp 将长度为 0 (NULL) 的向量传递给 cppfunction

r - 一个特定目录中的 .csv 文件列表

mysql - MySQL 中非法混合排序规则 =

php不从另一个文件导入变量

sql-server - 有没有办法让 SQL Server 验证存储过程中的对象引用?

sql-server - 新手 - 使用 CAST() 和 CONVERT() 时出错