编辑SAS配置文件以执行R(使SAS与其他人一起玩得很好)

时间:2013-10-22 18:47:53

标签: r configuration sas

R有很多东西可以做得更好。因此,我试图设置我的系统,以便我可以使用[submit / R;]和[endsubmit;]命令从SAS内执行R命令。但是我需要一些帮助才能正确设置我的配置文件来执行此操作。

第一步(允许SAS读取R语言):

我检查了我的系统是否设置为读取R语言(下面的代码)。

proc options option=rlang;
run;

我的日志中有以下内容:

SAS (r) Proprietary Software Release 9.3  TS1M0

NORLANG           Do not support access to R language interfaces

这意味着我需要在配置文件中添加-RLANG选项。我做到了下面是我的配置文件示例(C:\ Program Files \ SASHome \ SASFoundation \ 9.3 \ sasv9.cfg):

-RLANG
-config "C:\Program Files\SASHome\SASFoundation\9.3\nls\en\sasv9.cfg"

(注意:-RLANG必须高于配置参考,才能正确识别。)

重新打开企业指南并重新运行上面的proc选项代码后,我的日志中得到的输出:

SAS (r) Proprietary Software Release 9.3  TS1M0

RLANG             Support access to R language interfaces

问题(特定于企业指南?):

我使用的是SAS 9.3和R 2.15.2,因此根据这个(http://blogs.sas.com/content/iml/2013/09/16/what-versions-of-r-are-supported-by-sas/)这些版本是兼容的。

但是,我通过企业指南4.3(我更喜欢组织)执行SAS。看来,企业指南可能需要配置文件中的一些额外内容,以允许R运行并识别它在我的计算机上的位置。

例如,我尝试运行以下代码:

Proc iml;
  submit /R;
        directory <- "C:\\Data\\Filepath"
        FILEpattern1 <- "Fall 12-13.xlsx"

        setwd(directory)
        filenames1 <- list.files(pattern=FILEpattern1)
  endsubmit; 

我收到以下错误:

15         Proc iml;
NOTE: IML Ready
16         submit /R;
17         directory <- "C:\\Data\\Filepath"
18         FILEpattern1 <- "Fall 12-13.xlsx"
19         
20         setwd(directory)
21         filenames1 <- list.files(pattern=FILEpattern1)
22         endsubmit;
ERROR: SAS could not initialize the R language interface.

statement : SUBMIT at line 16 column 1

根据此主题(https://communities.sas.com/thread/34758),使用Enterprise Guide的个人还需要定义R_Home在其计算机上的位置。该主题讨论了在sasenv_local中更改内容但我需要更具体的指示。

有关如何使其发挥作用的任何建议或建议?

1 个答案:

答案 0 :(得分:5)

如果问题仅在本地环境变量中定义R_HOME,则至少有三个选项。如果您有权访问配置文件(OP中的-config中引用的文件),您可以将其添加到配置文件中:

-SET R_HOME "r_home location"

如果您无权修改配置文件,也可以使用options set执行相同的操作(options set=R_HOME='r_home location';)。

您还应该能够直接在Windows中修改环境变量,方法是转到“我的电脑”,右键单击“属性”,“高级”,“环境变量”并在其中进行设置。同样,这需要管理权。

有关详细信息,请参阅this paper

如OP所述。 R_HOME需要设置为R的基本目录(例如c:\ program files \ R),而不是设置到\ bin文件夹或任何其他特定位置。