R:导入其他样式数据的方法

来源:互联网 发布:毕向东java 编辑:程序博客网 时间:2024/05/18 09:04


►导入XML数据

    以XML格式编码的数据正在逐渐增多。R中有若干用于处理XML文件的包。由Duncan Temple Lang编写的XML包允许用户读取、写入和操作XML文件。

    对使用R存取XML文档感兴趣的读者可以参阅:www.omegahat.org/RSXML,从中可以找到若干份优秀的软件包文档。

 

►从网页抓取数据

    在Web数据抓取(Webscraping)的过程中,用户从互联网上提取嵌入在网页中的信息,并将其保存为R中的数据结构以作进一步分析。完成这个任务的一种途径是使用函数readLines()下载网页,然后使用grep()和gsub()一类的函数处理它。

    对于结构复杂的网页,可以使用RCurl包和XML包来提取其中想要的信息。

 

►导入SPSS数据

    SPSS数据集可以通过foreign包中的函数read.spss()导入R中,也可以使用Hmisc的spss.get()函数。函数spss.get()是对read.spss()的一个封装,它可以为你自动设置后者的许多参数,让整个转换过程更加简单一致。

    首先,下载并安装Hmisc包(foreign包已被默认安装):

> install.packages("Hmisc")

    然后,使用以下代码导入:

library( Hmisc )

mydata <- spss.get( "D:/SPSS/myspss.sav", use.value.labels=TRUE )

    这段代码中,myspss.sav是要导入的SPSS数据文件,use.value.labels=TRUE表示让函数将带有值标签的变量导入为R中水平对应相同的因子。mydata是导入后的对话框。

 

►导入SAS数据

    R中涉及了若干用来导入SAS数据集的函数,包括foreign包中的read.ssd()和Hmisc包中的sas.get()。遗憾的是,如果使用的是SAS的较新版本(SAS 9.1或更高版本),你很可能会发现这些函数并不能正常工作,因为R尚未跟进SAS对文件结构的改动。个人推荐两种解决方案。

    你可以在SAS中使用PROC EXPORT将SAS数据集保存为一个逗号分隔的文本文件,并使用从带分隔符的文本文件导入数据的方法将导出的文件读取到R中。

    另外,一款名为Stat/Transfer的商业软件,可以完好地将SAS数据集(包括任何已知的变量格式)保存为R数据框。

 

►导入Stata数据

    要将Stata数据导入R中非常简单,命令如下:

> library( foreign )

> mydata <- read.dta( "mydata.dta" )

    这里,mydata.dta是Stata数据集,mydata 是返回的R数据框。

 

►导入netCDF数据

    Unidata项目主导的开源软件库netCDF(network Common Data Form,网络通用数据格式)定义了一种机器无关的数据格式,可用于创建和分发面向数组的科学数据。netCDF格式通常用来存储地球物理数据。ncdf包和ncdf4包为netCDF文件提供了高层的R接口。

    ncdf包为通过Unidata的netCDF库(版本3或更早)创建的数据文件提供了支持,而且在Windows、Mac OS X和Linux上均可使用。ncdf4包支持netCDF 4或更早的版本,但在Windows上尚不可用。

library( ncdf )

nc <- nc_open( "mynetCDFfile" )

mydata <- get.var.ncdf( nc, myvar )

    在本例中,对于包含在netCDF文件mynetCDFfile中的变量myvar,其所有数据都被读取并保存到了一个名为myarray的R数组中。值得注意的是,ncdf包和ncdf4包最近进行了重大升级,使用方式可能与旧版本不同。另外,这两个包中的函数名称也不同。请阅读在线文档以了解详情。

 

►导入HDF5数据

    HDF5(Hierarchical Data Format,分层数据格式)是一套用于管理超大型和结构极端复杂数据集的软件技术方案。hdf5包能够以那些理解HDF5格式的软件可以读取的格式,将R对象写入到一个文件中。这些文件可以在之后被读回R中。这个包是实验性质的,并假设用户已经安装了HDF5.目前,R对HDF5格式支持非常有限。

 

 

 

 


0 0
原创粉丝点击