我有一个60gb的sas7bdat文件我试图在R中进行子集.有没有人知道这样做的方法?
我有SAS,它需要大约14分钟才能完成,但是我想在R中做到这一点.
谢谢
我下载了将 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)