gpt4 book ai didi

r - 将 sqldf 放入 r 函数中

转载 作者:行者123 更新时间:2023-12-02 09:15:50 27 4
gpt4 key购买 nike

有什么方法可以将 sqldf 查询放入用户定义的函数中吗?我经历过这个:http://r.789695.n4.nabble.com/Passing-Multiple-Variable-Into-SQLDF-Statement-as-parameters-of-function-td4636147.html , R call variable inside sqldf

我的示例代码如下:

db1 = data.frame(a = c(1,2,3), b = c("a","b","c"))
db2 = data.frame(a = c(1,2,3), b = c("b","a","c"))
db = list(db1,db2)

extrct = function(x){
Example=paste0("select * from", x , "where b
='","b", "'")
sqldf(Example,verbose=TRUE)
}

我有很多数据库,只要 sqldf 在函数中工作,编写类似 SAS 宏的代码来提取数据就很容易。另外,我为一些小进程编写了 R 代码,但有许多复杂的 SQL 过程,在 sqldf 中会容易得多。提前致谢。

最佳答案

试试这个:

library(sqldf)

extract <- function(x, envir = parent.frame(), verbose = TRUE, ...) {
fn$sqldf("select * from [$x] where b = 'b'", envir = envir, verbose = verbose, ...)
}

# sample runs
extract("db1")
extract("db2")

Map(extract, c("db1", "db2"))

db <- setNames(db, c("db1", "db2"))
lapply(names(db), extract, envir = list2env(db))

如果我们将最后一行更改为此,则输出将具有组件名称,但其他方面相同:

sapply(names(db), extract, envir = list2env(db), simplify = FALSE)

关于r - 将 sqldf 放入 r 函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47241548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com