R使用RMySQL包

来源:互联网 发布:动态特效的软件 编辑:程序博客网 时间:2024/05/18 00:45

经常在网上看到,很多人问如何在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)datdbSendQuery(con,"insert into hi values('阿明',28,'男')")res=dbSendQuery(con,"select * from hi order by age")dat=fetch(res)datdbDisconnect(con) 


0 0