如何读入R中的大型sas7bdat数据集?

use*_*944 5 r

我有一个60gb的sas7bdat文件我试图在R中进行子集.有没有人知道这样做的方法?

我有SAS,它需要大约14分钟才能完成,但是我想在R中做到这一点.

谢谢

dax*_*x90 2

我下载了将 Sas 转换为 csv 的Wonderl dsread http://www.oview.co.uk/dsread/ 。

您应该从 CMD 使用它,但我选择将其集成到 R 中。我创建了一个将 Sas 迁移到 csv 的函数:

esp_Sas_Csv<-function(dir,file_input,dir_output,device="c:") {
p1<-paste("cd",dir)
if(tolower(device)!="c:") {p1<-paste(device,"\n",p1)}

#"open" the program

p2<-"SET dsread=C:\\dsread\\dsread.exe"
cmd2<-paste('"%dsread%" /v /t ',file_input,' >  "',dir_output,file_input,'.csv"',sep="")

cmd<-paste(p1,p2,cmd2, sep="\n")
setwd("c:\\temp")
write(cmd,"sas_to_csv.bat")
system("sas_to_csv.bat")

}
Run Code Online (Sandbox Code Playgroud)

这段代码:

device<-"c:"
dir<-"C:\\temp\\"
file_input<-"my_sas_tab"
dir_output<-"C:\\temp\\"

esp_Sas_Csv(dir,file_input,dir_output,device)
Run Code Online (Sandbox Code Playgroud)

生成并运行.bat类似的

cd C:\temp\
SET dsread=C:\dsread\dsread.exe
"%dsread%" /v /t my_sas_tab >  "C:\temp\my_sas_tab.csv"
Run Code Online (Sandbox Code Playgroud)