我的公司最近转换为SAS而没有购买SAS SHARE许可证,因此我无法将ODBC插入服务器.我不是SAS用户,但我正在编写一个程序,需要从服务器查询数据,我想让我的R脚本调用.sas程序来检索数据.我认为这是可能的
df <- system("sas -SYSIN path/to/sas/script.sas")
但我似乎无法使其发挥作用.我花了几个小时在谷歌上,并决定在这里问.
错误信息:
running command 'sas -SYSIN C:/Desktop/test.sas' had status 127
Run Code Online (Sandbox Code Playgroud)
谢谢!
假设您的sas程序生成sas数据集,您需要做两件事:
通过shell或system,使SAS运行程序,但首先cd在包含sas可执行文件的目录中,以防目录不在您的PATH环境变量中.
setwd("c:\\Program Files\\SASHome 9.4\\SASFoundation\\9.4\\")
return.code <- shell("sas.exe -SYSIN c:\\temp\\myprogram.sas")
请注意,返回的不是数据本身,而是操作系统发出的代码,告诉您任务是否成功.代码0意味着任务已成功.
在sas程序中,我所做的就是sashelp.baseball在c:\temp目录中创建一个副本.
使用为其编写的一个包将生成的数据集导入R.Haven是最新的和IMO最可靠的.
# Install Haven from CRAN:
install.packages("haven")
# Import the dataset:
myData <- read_sas("c:\\temps\\baseball.sas7bdat")
你应该拥有它!