- 带分隔符的文本文件导入数据
以使用read.table()从带分隔符的文本文件中导入数据。
grades <— read. table ( " studentgrades . csv" , header=TRUE, sep= " , " ,
row.names= " STUDENTID")
- 导入Excel数据
读取一个Excel文件的最好方式,就是在Excel中将其导出为一个逗号分隔文件(csv),并使
用前文描述的方式将其导入R中。RODBC也可用于从Microsoft Access导入数据。更多详情,参见help(RODBC)。
library(RODBC)
channel <— odbcConnectExcel("myfile.xls")
mydataframe <— sqlFetch(channel, "mysheet")
odbcClose(channel)
library(xlsx)
workbook <— "c:/myworkbook.xlsx"
mydataframe <— read.xlsx(workbook, 1)
- 导入XML数据
以XML格式编码的数据正在逐渐增多。R中有若干用于处理XML文件的包。例如,由Duncan
Temple Lang编写的XML包允许用户读取、写入和操作XML文件。XML格式本身已经超出了本书
的范围。对使用R存取XML文档感兴趣的读者可以参阅www.omegahat.org/RSXML,从中可以找
到若干份优秀的软件包文档。
- 从网页抓取数据
在Web数据抓取(Webscraping)的过程中,用户从互联网上提取嵌入在网页中的信息,并将
其保存为R中的数据结构以做进一步的分析。完成这个任务的一种途径是使用函数readLines()
下载网页,然后使用如grep()和gsub()一类的函数处理它。对于结构复杂的网页,可以使用
RCurl包和XML包来提取其中想要的信息。更多信息和示例,请参考可在网站Programming with R
(www.programmingr.com)上找到的“Webscraping using readLines and RCurl”一文。
- 访问数据库管理系统
R中有多种面向关系型数据库管理系统(DBMS)的接口,包括Microsoft SQL Server、Microsoft
Access、MySQL、Oracle、PostgreSQL、DB2、Sybase、Teradata以及SQLite。其中一些包通过原
生的数据库驱动来提供访问功能,另一些则是通过ODBC或JDBC来实现访问的。
ODBC接口
在R中通过RODBC包访问一个数据库也许是最流行的方式,这种方式允许R连接到任意一种
拥有ODBC驱动的数据库,其实几乎就是市面上的所有数据库。
第一步是针对你的系统和数据库类型安装和配置合适的ODBC驱动——它们并不是R的一部
分。如果你的机器尚未安装必要的驱动,上网搜索一下应该就可以找到。
针 对 选 择 的 数 据 库 安 装 并 配 置 好 驱 动 后 , 请 安 装 RODBC 包 。 你 可 以 使 用 命 令
install.packages("RODBC")来安装它。
odbcConnect(dsn,uid="",pwd="")
建立一个到ODBC数据库的连接
sqlFetch(channel,sqltable)
读取ODBC数据库中的某个表到一个数据框中
sqlQuery(channel,query)
向ODBC数据库提交一个查询并返回结果
sqlSave(channel,mydf,tablename=
sqtable,append=FALSE)
将数据框写入或更新(append=TRUE)到ODBC数据库的
某个表中
sqlDrop(channel,sqtable
删除ODBC数据库中的某个表
close(channel) 关闭连接
library(RODBC)
myconn <—odbcConnect("mydsn", uid:"Rob", pwd:"aardvark")
crimedat <— sqlFetch(myconn, Crime)
pundat <— sqlQuery(myconn, "select * from Punishment")
close(myconn)
- 处理数据对象的实用函数