往期回顾
作为一名数据分析师,通常会面对来自多种数据源和数据格式的数据,而我们的任务就是将这些数据导入我们的工具,分析数据,形成数据分析报告。
R可以从键盘、文本文件、Microsoft Excel和Acess、流行的统计软件、特殊格式的文件,以及多种关系型数据库中导入数据。
键盘输入数据的方式通常对小数据集较为有效,这里就不在赘述。我们重点学习导入较大的数据集的方式:文本文件、统计软件、Excel表格或数据库中导入数据。
一、从带分隔符的文本文件导入数据
read.table()函数从带分隔符的文本文件中导入数据,即读入一个表格格式的文件并将其保存为一个数据框。语法如下:
mydataframe
其中,file是一个带分隔符的ASCII文本文件,header是一个表明首行是否包含了变量名的逻辑值,sep用来指定分隔数据的分隔符,row.names是一个可选参数,用以指定一个或多个行标识符的变量。
二、导入Excel数据
读取Excel文件最好的方式,就是在Excel中将其导出为一个逗号分割文件(csv),并使用上面所提到的方式导入R中。
Windows系统中,你也可以使用RODBC包来访问Excel文件,电子表格的第一行应当包含变量/列的名称。
Excel 2007以后的版本格式为XLSX的文件格式,这时需要xlsx包来读取这种格式的电子表格。包中的函数为read.xlsx(file,n),其中file是Excel 2007工作簿的所在路径,n为要导入的工作表序号。
三、访问数据库管理系统
R中有多种面向关系型数据库管理系统(DBMS)的接口,其中一些包通过原生的数据库驱动来提供访问功能,另一些则是通过ODBC或JDBC来实现访问的。
3.1 ODBC接口
在R中通过RODBC包访问一个数据库是最流行的方式,几乎涵盖所有的数据库。
第一步:这对自身的系统和数据库类型安装和配置合适的ODBC驱动(不是R的一部分)。
第二步:安装RODBC包。以下为包中的主要函数:
odbcConnect(dsn,uid="",pwd="") 建立一个到ODBC数据库的连接
sqlFetch(channel,sqltable) 读取数据库中的某个表到数据框中
sqlQuery(channel,query) 向数据库提交一个查询并返回结果
sqlSave(channel,mydf,tablename=sqtable,append=FALSE) 将数据框写入 或更新到ODBC数据库的某个表中
sqlDrop(channel,sqtable) 删除OBC数据库中的某个表
close(channel) 关闭连接
3.2 DBI相关包
DBI包为访问数据库提供一个通用且一致的客户端接口。RJDBC包提供了通过JDBC驱动访问数据库的方案。
数据准备工作可能是数据分析中最具有挑战性的任务之一。
领取专属 10元无门槛券
私享最新 技术干货