前面两篇文章介绍了导入导出csv文件,txt文件,xlsx文件,接下来,将介绍R连接数据库,从数据库中导入数据。
在我工作中,使用的是sql server,所以将以sql server为主来介绍。R中没有提供sql server的独立DBI,GitHub有一个RSQLserver包,曾在cran中上线过,后来下线了。我主要使用RODBC包连接数据库。
RODBC包
在使用RODBC包连接sql server数据库之前,需要先设置ODBC数据源管理器来配置sql server驱动。
以win7系统为例,配置sql server驱动。
打开控制面板——管理工具,找到数据源(ODBC);
打开数据源(ODBC),选择添加;
选择sql server驱动,点击完成;
在弹出窗口填写信息,点击下一步;
名称将在后面连接时用到,需记住;
选择验证信息,填写ID和密码;
ID与密码正确后,选择默认的数据库;
点击下一步,选择语言与其他设置,一般默认就好了。
点击完成,即可配置成功,弹出测试数据源窗口。
测试成功即可使用RODBC包连接。
好了,以上就是使用ODBC数据源管理器来配置sql server驱动的步骤,测试成功后,进入R中使用RODBC包连接数据库。
#RODBC包连接数据库#连接sql server数据库conn odbcGetInfo(conn) DBMS_Name DBMS_Ver Driver_ODBC_Ver "Microsoft SQL Server" "10.50.1600" "03.52" Data_Source_Name Driver_Name Driver_Ver "SQL SERVER" "SQLSRV32.DLL" "06.01.7601" ODBC_Ver Server_Name "03.80.0000" "XXXX" #关闭连接odbcClose(conn)
连接成功后,就可以对数据库进行读取与写入操作了。
Rstudio导入
在新版的Rstudio中,我使用的版本(Version 1.1.383),在右上pane中提供了连接数据库的界面操作。
点击 New Connection,Rstudio已经帮我们把配置好的驱动列出来了。
点击已配置好的驱动。
添加用户ID和密码,并测试。
测试成功,点击OK。
在右上角可以看到连接的数据库。但是该连接方式对中文支持不友好,无论是表名还是数据,只要是中文,就出现乱码。如果有高手知道如何解决,望告知!
成功连接后,在connection里,保存了连接信息,下次可直接使用。
总结
RODBC包兼容性更好;
Rstudio导入简单易用;
领取专属 10元无门槛券
私享最新 技术干货