r mysql包_R使用RMySQL包

经常在网上看到,很多人问如何在R中如何连接数据库,尤其是如何使用RMySQL包的问题。这些问题主要分为两部分:一是 安装不上; 二是安装上了 结果显示是中文乱码或者是问号。我当初也被这种问题困扰过一段时间,所以现在简单总结一下:希望能够帮助部分人解决问题。

首先如何加载RMySQL包:细分几个步骤:

1,安装R(哈,当然这一步很多人可以跳过了)

2,安装R tools,最好要和R是一个版本 比如最新的R是2.15.0 R tools是Rtools215

链接:http://mirror.bjtu.edu.cn/cran/

3,安装MySQL(5.5)

4,在文件夹 C:\Program Files\R\R-2.15.0\etc中创建 名为 Renviron.site的文件,并用记事本打开添加 MYSQL_HOME=C:/Program Files/MySQL/MySQL Server 5.5语句。

5,复制libmysql.lib and libmysql.dll(这两个文件在C:\Program Files\MySQL\MySQL Server 5.5\lib )到文件夹C:\Program Files\MySQL\MySQL Server 5.5\lib\opt(没有该文件夹需要自己建立)

6,复制libmysql.dll(C:\Program Files\MySQL\MySQL Server 5.5\lib)到文件夹C:\Program Files\R\R-2.14.0\bin\i386中

7,打开R,开始安装RMySQL,install.packages(‘RMySQL’, type = ‘source’);

链接:http://yixuan.cos.name/en/wp-content/uploads/2011/10/RMySQL_0.8-0_for_MySQL_5.5.16.zip

注意下载完,修改文件名为RMySQL_0.8-0.zip。

8,library(RMySQL),这个过程之前还需要加载DBI包。

下面回答第二个问题

R中能否正确显示Mysql的中文字符记录,而不是乱码或者问号,和MySQL的配置有关。

有关mysQL配置的资料很多,我只简单介绍,如何设置。

正确安装完mySQL之后,输入命令行:

show variables like ‘character_set_%’;

显示你的mySQL的字符集环境

如果发现有字符集latin1则修改为gbk或者utf8

比如character_set_database 的字符集合为latin1

则可以通过 SET character_set_database=”gbk”;可以修改字符集。

我的简单方式 是不管三七二十一,把所有的都修改为gbk。

这样设置完,我们就可以在R中调用操作数据库中的数据了。

假如安装mySQL时,设置user 为 root 密码 是六个1,并且已经在mySQL中建立了一个名为test的数据库,里面有一个表hi,里面有三个字段是 name,age,sex

则在R中查询按照年龄降序排列的代码如下:

library(RMySQL)

con=dbConnect(MySQL(),user="root",password="111111",dbname="test")

table.names=dbListTables(con)

fields.names=dbListFields(con,"hi")

dbSendQuery(con,'SET NAMES gbk') # 注意该行代码是告诉通过什么字符集来获取数据库字段,gbk或者utf8与你当初设置保持一致。

res=dbSendQuery(con,"select * from hi order by age")

dat=fetch(res)

dat

dbSendQuery(con,"insert into hi values('阿明',28,'男')")

res=dbSendQuery(con,"select * from hi order by age")

dat=fetch(res)

dat

dbDisconnect(con)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值