2014-10-16 22 views
4

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

我使用下面的包我: 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架构之间进行切换。

Global Options

但生效,它要求我重新启动R.通过重启R,我失去我的所有实例,并且是在不同的架构之前加载的对象。任何解决方法?

回答

1

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

测试R上3.1.1

的32个64位版本在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 
+0

谢谢@ mkemp6 ...这工作! – EsBee 2014-12-18 00:37:10