r - 从 sqldf 查询调用 R 函数

标签 r sqlite sqldf

有没有办法从 sqldf 查询中调用 R 函数?例如

sqldf("select paste('Hello', 'World')")

或者,有没有办法在 sqldf 背后的 SQLite 引擎中定义自定义函数或存储过程? (我将 sqldf 与普通的旧内存中 R 数据帧一起使用;我没有连接到任何实际的数据库。)

最佳答案

1) 现有功能 首先确保您想要的功能尚不可用。例如,SQL 已经直接支持问题中的代码:

> sqldf("select 'Hello' || ' ' || 'world' ")
  'Hello' || ' ' || 'world'
1               Hello world

2) RSQLite.extfuns 一个具有 sqlite 版本的 SQL 中的所有 SQL 函数以及 ?initExtension 中列出的大量开箱即用的用户定义函数RSQLite 包。

3) 其他可加载扩展 任何现有 sqlite 可加载扩展中的函数都可以通过 sqlite SQL 函数 load_extension() 加载。例如见these extensions

4) 自定义函数 自定义函数可以添加到 SQLite 但必须写成 in C .

5) PostgreSQL & sqldf sqldf 不仅支持 sqlite,还支持 h2、postgresql 和 mysql。 postgresql 在这方面特别强大。参见 this link from the postgresql documentation另见 Pl/RR Embedded Postgres package .

6) H2 & sqldf sqldf支持H2数据库。就像 sqlite H2 一样包含在 RH2 驱动程序 R 包中,因此您不必安装单独的数据库;但是,您必须安装 Java。它有一个内置的 SHA256 哈希函数(称为哈希)。

7) mix sqldf & R sql和R可以这样混合:

library(digest)
transform(sqldf("select * from BOD"), digest = sapply(demand, digest))

8) 其他 看这个SO question and answers

更新:添加了关于 H2 的信息。

关于r - 从 sqldf 查询调用 R 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16451258/

相关文章:

r - 如何在ggplot中设置某些轴的图例

r - 可以创建每天将 SQL 数据库写入 MongoDB 的管道吗?

php - sqlite中的PDO::beginTransaction()和外键冲突

sql - 无法使用 sqldf 对 R 中的函数使用rank()

r - 在 R 中导入文本文件

r - 如何计算特定范围内的数字数量

android - 无法从使用 count() 的 sqlite 查询中检索结果

java - 将字符串从另一个 SearchActivity 添加到 SQLite 数据库后更新 Fragment 内的 ListView

r - 无法在 Linux 上安装 sqldf

R sqldf - match.fun(asfn) 'c("as.labelled", "as.integer")' 不是函数、字符或符号