rstudio中读取数据_Rstudio操作数据库

本文介绍了如何在RStudio中使用RODBC包连接并操作MySQL数据库。步骤包括安装RODBC和MySQL ODBC驱动,配置数据源,通过R代码连接数据库并执行SQL查询,以及展示R与SQL Server等其他数据源的连接可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们常常会把大量的数据存储在MySQL这样的数据库中,这样方便我们进行数据提取和操作,而很多时候当我们在用R进行数据分析的时候,通常都希望R能够直接和mysql数据库连接,方便我们直接对大规模数据进行处理。当然,mysql中存储的是结构化数据。

有些朋友在使用R连接mysql等数据库的时候会遇到一些问题,因而本文着重以mysql为例,介绍如何利用R连接mysql数据源的基本步骤。具体步骤如下:

1、R下载RODBC包,安装好。

installpackages("RODBC");#安装RODBC包

2、打开链接  http://dev.mysql.com/downloads/connector/odbc

下载mySQL ODBC,安装好。

3、windows:控制面板->管理工具->数据源(ODBC)(根据电脑选择32位、64位)->点击添加->选中mysql ODBC driver选项(Unicode和ANSI任意选择一个)。

填写:data source name(DSN数据源名称) 一项填入你想要使用的名字,例如:mysql_data;

description一项随意填写,例如mydata

TCP/IP Server 填写本机服务器IP,一般为:127.0.0.1或者localhost

user 填写你的mysql用户名

password 填写你的mysql密码

然后数据库里会出现你的mysql里的所有数据库,选择一个数据库。

4、打开R的界面调用数据库:(本人使用的是RStudio)

1 library(RODBC);

2 channel

3 sqlTables(channel);  #查看数据库中的表

4 data

5、至此,R已经成功与mysql数据库连接,并且获取了mysql库中niesheng数据库里titanicdata表中的数据。

6、既然能够连接上数据库,那么在R中同样可以使用SQL语句进行数据处理和数据提取。

例1:将年龄不为空的数据存入data1数据集中。

data1 'null';

例2:将是否幸存survived、阶级class、性别sex 都转换为1、0这样的数值,便于后面进行分析。

Titanic

(case when t.class='1st' then 1 when t.class='2st' then 2 else 3 end) class,

(case when t.sex='male' then 1 else 0 end) sex

from titanicdata t where age<> 'null' ORDER BY survived,age;");

7、R不仅可以连接mysql,还能连接其他数据源,包括Access、Excel、SQLServer数据库等。具体可以参考R中的odbcConnect的具体用法。

一、 安装RODBC库   1、进入R语言的GUI界面(RGUI.EXE),在菜单栏选择“程序包/安装程序包      2、在弹出的窗口里往下拉,选择RODBC如图,点击确定   3、在ODBC数据源管理器里将需要的数据库添加进去,这里笔者使用的是SQL Server2008,驱动程序选择Native Client10.0      3、在R语言窗口输入连接语句   > library(RODBC)   **这里是载入RODBC库 > channel data(USArrests)   **将“USArrests”表写进数据库里(这个表是R自带的) > sqlSave(channel,USArrests,rownames = "state",addPK = TRUE)   **将数据流保存,这时候打开SQL Server就可以看到新建的USArrests表了 > rm(USArrests) > sqlTables(channel)   **给出数据库中的表 > sqlFetch(channel,"USArrests",rownames = "state")   **输出USArrests表中的内容 > sqlQuery(channel,"select * from USArrests")   **调用SELECT查询语句并返回结果(如图)     > sqlDrop(channel,"USArrests")   **删除表   > odbcClose(channel)   **最后要记得关闭连接   当然,通过这个办法也可以读取Excel、Access表中的内容,具体方法类似,这里不再重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值