我想了解如何使用 dplyr
在远程数据库上与存储在 R 中的数据。也就是说,我不清楚哪些函数可以用于 mutate()
.例如,这工作得很好:
diamonds %>%
select(color, cut, price) %>%
mutate(
newcol = paste0(cut, color)
)
但是,如果我尝试使用
paste()
在远程数据库(太大而无法在本地存储)上,我收到一条错误消息Error in postgresqlExecStatement(conn, statement, ...) :
RS-DBI driver: (could not Retrieve the result : ERROR: function paste0()
这是一个示例,但我在尝试使用来自非基础 R 的 POSIXct 日期和其他函数时注意到了类似的错误。
我的问题 :我是否仅限于使用非常基本的聚合函数,例如提到的 here ?如果没有,如何通过 dplyr 在远程数据库上实现其他功能(自定义、附加库等)?
最佳答案
是的,dplyr
使用 dbplyr
用于 SQL 翻译的包。在其中,我们必须手动指定每个 R 命令如何转换为特定的 SQL 语法,因此在某些情况下,一个函数可能适用于一个数据库而不适用于其他数据库。我刚刚检查了 PostgreSQL 的翻译,看起来我们有 paste()
的翻译。但不是 paste0()
.同时,您还可以在 dplyr
内部传递 SQL 命令。动词,例如,mutate(m = strpos(field1, "search"))
将运行 PostgreSQL strpos
用于在字段中定位字符串。
关于r - 在本地和远程数据库上使用 dplyr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35191532/