R语言有很多种获取从数据源(有手动输入、CSV、Excel、JSON、XML、NetCDF、HDF5、SPSS、SAS、Stata这些数据源等)获取数据的方式,下面介绍常用的几种:
#手动录入#
数据量少,可以采用这种方式:
1.1 先创建对象,然后调用<对象名> <- edit(<对象名>)或fix(<对象名>)来进行增加数据:
输入数据:
数据结果:
1.2 直接创建变量并同时初始化,然后调用read.table()读取:
这种方式对于初学者可能会多用一些,实际很少用的。
#导入Excel数据#
读取Excel需要安装xlsx、xlsxjars、rJava包,因为涉及Java,因此需要Java环境也配置好了,另外还有个包openxlsx,它不需要依赖rJava,就用它了吧:
测试Excel文档的内容:
导入数据:
更多使用查help就行了。
#从网络获取数据#
这里使用现在广泛使用的JSON数据:
这里使用一个接口获取的json数据如下:
可以看到,其结构如下,我们准备获取result对应的list:
{“result”: [
{“type”: “—-“, “name”: “—“}
…
]}
安装”rjson”包:
测试获取数据:
返回的是一个列表数据。为了方便处理,可以转为数据框:
数据还是可以优化的,上面看到typeX和nameX一直重复,现在把所有name提取出来,其他的type都一样:
数据挖掘流程一开始都这样,从数据源获取数据到数据仓库,然后进行数据预处理为便于分析的数据(刚刚做的就是数据预处理),然后进行下一步的建模分析了。
#从数据库获取数据#
可以通过原生的数据库驱动或ODBC/JDBC来从数据库获取数据,一般通过ODBC或JDBC连接是最常用的,因为不用针对每种数据库都写不一样的语句。
安装后,可以执行命令help(package="RMySQL")
查看帮助文档。
- 创建数据库连接:
con <- dbConnect(MySQL(), host="localhost", dbname="jarvis", user="root", password="xxx")
- 获取连接信息:
summary(con)
或dbGetInfo(con)
- 查看所有表:
dbListTables(con)
- 删除指定表:
dbRemoveTable(con, "xxx{表名}")
- 查询信息:
—- 如下为连接数据库WINDOWS版本操作
安装RODBC包之前,需要先针对使用的系统和数据库类型安装和配置合适的ODBC驱动这里下载, 现在下载安装mysql的ODBC驱动,安装后目录如下:
配置好后,接下来就是安装RODBC:
然后配置数据源:(控制面板 —- 管理工具 —- 出现如下窗口)
选择”ODBC数据源(64位)”, 显示如下窗口:
选择”系统DSN”,点击”添加”,如下:
出现两种数据库的驱动,这里用MySQL(SQL Server类似),选择ANSI的,确定后弹出如下界面:
输入相关信息,点击”Test”测试一下,连接成功:
配置完成后,现在R加载ODBC库来连接数据库查看下数据:
通过MySQL WorkBench查看iHouse数据库数据如下:
测试:
使用sqlTables可以看数据库里有什么表,然后使用sqlFetch可以获取表的所有数据,使用sqlQuery可以输入有效地SQL语句进行指定查询。更多使用参考RODBC的文档即可。
最后,不使用,记得使用close()函数管理连接: close(my_con)。
#从本地TXT文件获取数据#
假设现在有这个数据文件:
可如下读取:
后面还可以从XML或其他数据源获取数据,因为目前我不常用,也就不测试了,用到再弄了,而且实际对数据的处理是很灵活的,根据数据分析要求,从数据源获取,然后按需处理数据即可。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 linjk121@163.com.