【问题标题】:R: Connecting to multiple databases from R StudioR:从 R Studio 连接到多个数据库
【发布时间】:2014-10-16 19:34:25
【问题描述】:

对于我正在工作的当前项目,我需要从 2 个不同的数据库 - SQL Server 和 Teradata 中提取数据。我正在使用 R-Studio 来编译我的查询和 R 脚本

我正在使用以下软件包: RODBC, RJDBC, rJava,

我面临的问题是:SQL Server 是 64 位 ODBC 连接,而 Teradata 是 32 位 ODBC 连接。如果我安装 32 位版本的 R,我无法连接到 SQL Server,如果我安装 64 位版本的 R,RJDBC 和 rJava 不兼容,我无法连接到 Teradata。

非常感谢任何有关如何同时连接到两个数据库的帮助!!!

R 版本:3.1.1 R-Studio 版本:0.98.1074

谢谢!

编辑

我可以在 R-Studio 的工具-> 全局选项中切换架构。

但要生效,它要求我重新启动 R。通过重新启动 R,我丢失了之前在不同架构中加载的所有实例和对象。有什么解决方法吗?

【问题讨论】:

    标签: r rstudio multiple-databases dsn


    【解决方案1】:

    一种快速而肮脏的方法是启动常规 R GUI 的多个 R 会话,一个 64 位和一个 32 位(或制作 RStudio 一个版本并在常规 R GUI 中打开另一个版本),然后传递对象和使用saveload 的实例:

    在 32 位和 64 位版本的 R 3.1.1 上测试

    在 64 位 R 上

    > data(iris)
    > foo.df <- iris[,1:3]
    > save(list = ls(all = TRUE), file = ".RData64bit")
    

    在 32 位 R 上

    > local({
    +    load(".RData64bit") # load the image
    +    ls() # list the loaded objects
    + })
    [1] "foo.df"           "iris"             "rLibraryLocation" "toInstall"       
    [5] "wantedPackages"     
    > load(".RData64bit") # execute the load in the R environment, objects now available
    > summary(foo.df)
    Sepal.Length    Sepal.Width     Petal.Length  
    Min.   :4.300   Min.   :2.000   Min.   :1.000  
    1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  
    Median :5.800   Median :3.000   Median :4.350  
    Mean   :5.843   Mean   :3.057   Mean   :3.758  
    3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  
    Max.   :7.900   Max.   :4.400   Max.   :6.900  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多