gpt4 book ai didi

r - 加载 R 包时连接到数据库

转载 作者:行者123 更新时间:2023-12-03 01:35:06 25 4
gpt4 key购买 nike

我正在设置一个 R 包,其中包含 .sqlite 数据库和一些用于访问数据库的函数。在 R 中加载包后,我将调用以下函数来连接到数据库:

db.con <- function(){
# get the data subdirectory
db.wd <- system.file("data", package = "MyPKG")
# set up the connection
drv <- dbDriver("SQLite")
con <- dbConnect(drv,dbname = file.path(db.wd, "MyDB.db"))
return(con)
}

所以每次我加载包时我都必须这样做:

con <- db.con()

如果我可以避免每次都手动建立连接并自动连接到数据库(当加载包时),那就太好了。我尝试将上面的代码放入 .onLoad 函数中,但是 con 对象对包的函数不可见...

干杯,F

最佳答案

我将创建一个环境变量来存储您的设置。这比使用全局环境更安全。

在包中的某个位置您可以定义它,例如:

.settings <- new.env()  ## the "." to not be exported 

然后在您的 .attach 函数中使用以下命令对其进行初始化:

## you can use .onLoad also ...
.onAttach <- function(libname, pkgname) {
.settings$con <- "connection"
}

然后您可以在任何包函数中使用它,例如:

get_connection <- function() print(.settings$con)

关于r - 加载 R 包时连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26140460/

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