【问题标题】:Error with %PROC_R: A SAS Macro that Enables Native R Programming in the Base SAS Environment%PROC_R 出错:在基本 SAS 环境中启用本机 R 编程的 SAS 宏
【发布时间】:2015-03-14 15:23:38
【问题描述】:

自从 R 和 SAS 留在统计分析领域以来,我一直在探索存在哪些方法可以使它们更好地协同工作。从 URL-http://www.jstatsoft.org/v46/c02 下载 $PROC_R,这是一个 SAS 宏,可以在基本 SAS 环境中运行 R 代码。当我在 Windows 8 操作系统中使用 SAS 9.4 时,还按照补充 PDF 文件中的说明在桌面上创建修改后的 SAS 快捷方式。

当我执行示例代码时,出现 2 个错误。

SAS 代码:

data test;
do x=1 to 4;
array a[4] a1-a4;
do i=1 to 4;
a[i] = rannor(100);
end;
output;
end;
drop i x;
run;

%include "C:\Proc_R.sas";
%Proc_R (SAS2R = test, R2SAS =);
cards4;
R> testm <- as.matrix(test)
R> eigen(testm)
;;;;
%quit;

第一个错误:(但是代码执行并没有在这里停止)

ERROR: Physical file does not exist, C:\Users\878572\AppData\Local\Temp\SAS Temporary
   Files\_TD4972_01HW475399_\r_log_1737015649.txt.

第二个错误:

ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric
   operand is required. The condition was: &fgsw=1
ERROR: The macro QUIT will stop executing.

感谢任何帮助。

【问题讨论】:

  • 你有 SAS/IML 许可吗?
  • 同意@Reeza 暗示的观点。 PROC IML 允许您调用 R,将 SAS 数据集和矩阵推入/拉出 R 数据帧和 R 矩阵,并运行 R 代码。
  • 感谢 Reeza 和 DomPazz。目前我们没有获得 SAS/IML 许可,但 Reeza 的回答有所帮助。

标签: r macros sas


【解决方案1】:

代码大约有 4 年的历史,需要进行一些修改才能在您的系统上运行。

https://github.com/Jiangtang/Programming-SAS/blob/master/Proc_R.sas

对于初学者:

更改第 49 行以引用您的 R 版本,很可能是 R 版本 3。

我尚未测试其余代码,因此您可能会遇到更多错误。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。直到现在我还没有解决它,但我通过删除宏中关于“显示 R 图形”的段落(宏中的第 181 行到 233 行)来规避这个问题。这样做之后,它对我有用。我会做一些进一步的调查。我在这里阅读

    http://saslist.com/blog/category/proc_r/

    某事。关于解决图形问题的 setwd() 语句。

    希望它暂时有所帮助。如果我找到任何解决方案,我会给出一个新的答案......

    总而言之,我认为这是一个很棒的宏,但不幸的是,关于它的文献并不多。

    干杯

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多