2.3.7 导入SAS数据(read.sas7bdat())
R中设计了若干用来导入SAS数据集的函数,包括foreign包中的read.ssd(),Hmisc()包中的sas.get(),以及sas7dbat包中的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程序,如果你的电脑没有安装SAS程序,那么可以使用下面这个方法。使用read.sas7bdat()函数直接读取sas7bdat格式的SAS数据集,示例代码如下:
library(sas7bdat)
mydata <- read.sas7bdat("clients.sas7bdat")
不像sas.get(),read.sas7bdat()忽略了SAS用户自定义格式。此外,这个函数用了明显更多的时间来进行处理。
最后,一款名为Stat/Transfer的商业软件(在2.3.12节介绍)可以完好的将SAS数据集(包括任何已知的变量格式)保存为R数据框。与read.sas7bdat()一样,它也不要求安装SAS。