规格:SAS 9.3,GNU emacs 23.4.1(2012-06-05),我认为它是ESS的旧版本(2001年的某个时候可能?)。 Unix - 我认为是SunOS 5.10。
我是一位相当新的emacs用户,也是ESS [SAS]的新用户。我注意到,当我按地区提交时,作为整个文件提交时起作用的代码将无效。这是一个例子:
libname mylib "/.";
data temp; set mylib.temp; run;
假设我有一个libname中指定的目录,并且有一个名为temp的SAS数据集 - 当我提交整个内容时,我的代码正常工作,但是如果我只运行第一行然后运行第二行,那么告诉我" mylib"没有定义。
根据日志文件的行为 - 第二次提交会创建一个覆盖第一个文件的日志文件 - 我认为发生的事情是它每次提交都会启动一个新的SAS会话。为什么会这样呢? (ESS不会使用R代码执行此操作 - 我可以运行一个片段来定义变量,然后该变量保持定义。)我发现如果我以递增方式测试事物而不是以批处理模式运行所有代码,我会减少编程错误,并且unix中的SAS的GUI留下了一些需要的东西,所以我真的想找到一个解决方案。
我唯一的其他线索是每次提交时都会收到一对警告:
NOTE: Unable to open SASUSER.REGSTRY. WORK.REGSTRY will be opened
instead.
NOTE: All registry changes will be lost at the end of the session.
WARNING: Unable to copy SASUSER registry to WORK registry. Because of
this,you will not see registry customizations during this session.
NOTE: Unable to open SASUSER.PROFILE. WORK.PROFILE will be opened
instead.
NOTE: All profile changes will be lost at the end of the session.
我分别搜索了这些警告并发现它们通常与损坏的配置文件相关联,但不幸的是推荐的修复程序没有修复任何内容(在删除iffy配置文件后,它只是自行恢复并且错误仍然存在)。我不确定这是否相关。
我意识到这个问题可能超出了stackoverflow的范围;如果是的话,将非常感谢重定向到更合适的论坛。