R 语言实战 (2nd ed)(28):创建数据集 2.3.7

阅读数:17 2019 年 11 月 16 日 20:39

R语言实战(2nd ed)(28):创建数据集 2.3.7

内容简介
本书注重实用性,是一本全面而细致的 R 指南,高度概括了该软件和它的强大功能,展示了使用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。作者不仅仅探讨统计分析,还阐述了大量探索和展示数据的图形功能。新版做了大量更新和修正,新增了近 200 页内容,介绍数据挖掘、预测性分析和编程。
本书适合数据分析人员及 R 用户学习参考。

(导入 SAS 数据)

R 中设计了若干用来导入 SAS 数据集的函数,包括foreign包中的read.ssd()Hmisc包中的sas.get(),以及sas7bdat包中的 read.sas7bdat()。如果你安装了 SAS,sas.get()是一个好的选择。

比如说,你想导入一个名为 clients.sas7bdat 的 SAS 数据集文件,它位于一台 Windows 机器上的 C:/mydata 文件夹中,以下代码导入了数据,并且保存为一个 R 数据框:

复制代码
library(Hmisc)
datadir <- "C:/mydata"
sasexe <- "C:/Program Files/SASHome/SASFoundation/9.4/sas.exe"
mydata <- sas.get(libraryName=datadir, member="clients", sasprog=sasexe)

libraryName是一个包含了 SAS 数据集的文件夹,member是数据集名字(去除掉后缀名 sas7bdat),sasprog是到 SAS 可运行程序的完整路径。有很多可用的选项;查看help(sas.get)获得更多细节。

你也可以在 SAS 中使用PROC EXPORT将 SAS 数据集保存为一个逗号分隔的文本文件,并使用 2.3.2 节中叙述的方法将导出的文件读取到 R 中。下面是一个示例:

复制代码
SAS 程序:
libname datadir "C:\mydata";
proc export data=datadir.clients
outfile="clients.csv"
dbms=csv;
run;
R 程序:
mydata <- read.table("clients.csv", header=TRUE, sep=",")

前面两种方法要求你安装了一套完整的可运行的 SAS 程序。如果你没有连接 SAS 的途径,函数read.sas7dbat()也许是一个好的候选项。这个函数可以直接读取 sas7dbat 格式的 SAS 数据集。这个例子的对应代码是:

复制代码
library(sas7bdat)
mydata <- read.sas7bdat("C:/mydata/clients.sas7bdat")

不像sas.get()read.sas7dbat()忽略了 SAS 用户自定义格式。此外,这个函数用了明显更多的时间来进行处理。尽管我使用这个包的时候比较好运,它依然应该被认为是实验性质的。

最后,一款名为 Stat/Transfer 的商业软件(在 2.3.12 节介绍)可以完好地将 SAS 数据集(包括任何已知的变量格式)保存为 R 数据框。与read.sas7dbat()一样,它也不要求安装 SAS。

评论

发布