如何在R中读取大型SAS数据

May*_*yur 5 r sas

我有一个2GB的sas7bdat数据集,我想在R中读取.我使用sas7bdat包来读取数据集但是在使用read.sas7bdat之后,R没有响应并且它在没有任何输出的情况下继续运行数小时.

我也试过使用sas7bdat和避免包.任何人都可以帮我快速读取R中的数据.

nat*_*sau 5

例子

/* SAS */
libname rdata "C:/tmp";
data rdata.test; 
    input x y;
    datalines;
 5 6
 7 8
 ;
 run;

# R
setwd("C:/tmp")

# install.packages("haven")
library(haven)
test <- read_sas("test.sas7bdat")
Run Code Online (Sandbox Code Playgroud)

read_sas包中的函数应该haven比包中的函数快得多sas7bdat。根据 Hadley 的GitHub 描述

可以读取 SAS 专有的二进制格式 (SAS7BDAT)。CRAN 上的另一个软件包 sas7bdat 就是为了记录逆向工程工作而创建的。因此,它的实现是为了实验而设计的,而不是为了效率。Haven 速度明显更快,并且还应该支持更广泛的 SAS 文件(包括压缩文件),并且可以使用 SAS7BCAT 文件。