R语言-从数据源获取数据-三

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.