gpt4 book ai didi

mysql - 使用 .Rprofile 在 R 中预加载 MySQL 数据库连接

转载 作者:行者123 更新时间:2023-11-29 20:47:48 25 4
gpt4 key购买 nike

我是 R 新手,目前正在使用 .Rprofile 处理一些自动化问题。我一直在寻找解决这个问题的正确方法,但几乎没有找到专门针对我遇到的困难的信息。如果这是一个幼稚的问题,请原谅我,我发誓我正在努力实现这一目标!

我正在 RStudio 中设置一个项目。它需要与我的计算机上托管的 MySQL 数据库进行交互。我没有在每次启动项目时重新输入所有连接信息,而是尝试利用项目特定的(在项目的根目录中).Rprofile 来自动化该过程。

将以下内容键入 R 效果非常好:

dbxxx <- dbConnect(MySQL(), 
user='xxx',
password='xxx',
dbname='dbxxx',
host='localhost',
unix.sock='/Applications/MAMP/tmp/mysql/mysql.sock')

R 连接到数据库,dbxxx 在我的全局环境 Pane 中显示为正式类 MySQLConnection

然后,我尝试在项目特定的 .Rprofile 文件的 .First 部分中执行相同的操作,如下所示:

## Connect to database
cat("\nConnecting to localhost: xxx... ", sep="")
dbxxx <- dbConnect(MySQL(),
user='xxx',
password='xxx',
dbname='dbxxx',
host='localhost',
unix.sock='/Applications/MAMP/tmp/mysql/mysql.sock')
cat("Connected.\n", sep="")

运气不好。没有连接,也没有创建任何对象。我知道 .Rprofile 的语法并不总是与 R 提示符的语法相同,但我一生都无法找到修复方法。在这一点上,我什至想知道这是否是一个好主意,或者是否有某种我不知道的方法可以做到这一点。

最佳答案

有一些充分的理由避免使用 R 配置文件。反对使用它的最重要的论点是可移植性。

尽管如此,以下是如何正确设置它:

了解正在使用的 .Rprofile.Renviron 设置文件的位置非常重要。

R 在任何 session 中仅使用一个 .Rprofile 和一个 .Renviron:如果您当前的项目中有一个 .Rprofile 文件, R 将忽略 R_HOMEHOME 中的 .Rprofile。同样,HOME 中的 .Rprofile 会覆盖 R_HOME 中的 .Rprofile。这同样适用于 .Renviron:您应该记住,使用 .Renviron 添加项目特定的环境变量将停用其他 .Renviron 文件

因此,请尝试将您的 .Rprofile 放入项目的文件夹中。

要创建特定于项目的启动脚本,只需在项目的根目录中创建一个 .Rprofile 文件并开始添加 R 代码,例如通过 file.edit(".Rprofile")。请记住,这将使主目录中的 .Rprofile 被忽略。

看看这个 link以获得完整的解释。

选项 2:

让我向您建议一种不同的方法。无需将整个连接保存在 .Rprofile 中,只需保存用户详细信息,如下所示:

/* .Rprofile*/
mysql.user <- list(user='xxx',
password='xxx',
dbname='dbxxx',
host='localhost',
unix.sock='/Applications/MAMP/tmp/mysql/mysql.sock')

重新加载 Rstudio 并在控制台中尝试:

db <- dbConnect(MySQL(),mysql.user)

关于mysql - 使用 .Rprofile 在 R 中预加载 MySQL 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318754/

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