问题标签 [sas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
384 浏览

editor - 使用工具栏从编辑器提交 SAS 代码

当通过 SAS 工具栏(例如cmjohns 响应)提交 SAS 代码时,编译器知道代码正在“DM'd”并且不会运行某些代码(例如 %window)。

有没有办法让 SAS 相信从工具栏提交的代码来自编辑器,从而允许通过点击触发界面(使用 %window)?

0 投票
1 回答
198 浏览

toolbar - 您如何使所有窗口都可以使用 SAS 工具栏?

我正在使用 SAS 9.1 并希望无论哪个窗口处于“焦点”(例如日志、编辑器、输出)中都可以使用我的工具栏。

我的代码如下所示:

但是,当我运行它时,它只会应用于日志窗口!我在某处读到 SWITCHING 需要关闭,但这似乎是 V6.1 选项,在 Base SAS 窗口环境中找不到它......

0 投票
3 回答
339 浏览

windows - 使用 Base SAS 验证 Windows 密码

我们有一个登录脚本,它需要 Windows 密码才能访问和验证 SAS 元数据服务器。

问题是,如果更改了 Windows 密码,并且脚本运行了几次而没有更新,那么用户就会被锁定,并且必须致电 IT 支持部门来重置密码。

使用 Base SAS (9.1.3) 验证 Windows 密码的最简单方法是什么?即如果提供的密码无效,则向用户发出警告...

编辑:

问题不在于是否应该这样做,而在于如何做到!

0 投票
3 回答
14150 浏览

sas - 从字符串中去除撇号(压缩?)

我有一个看起来像这样的字符串:

我希望它看起来像这样:

即没有撇号或逗号和单个空格分隔。

在 SAS 9.1.3 中最干净/最短的方法是什么?

最好是这样的:

为了清楚起见,结果需要用单个空格分隔,没有标点符号,并且包含在宏变量中。

0 投票
2 回答
662 浏览

sas - SAS 9.2 中的 metadata_newobj 函数有错误吗?

我有一个 SAS 应用程序,我正在使用新发布的 SAS 9.2 进行测试。我调用了 metadat_newobj 函数来在 SAS 元数据存储库中创建一个新的库对象:

在 9.1.3 中,当函数成功执行 (rc = 0) 时,URI 变量将填充新创建的库对象的 URI。

在 SAS 9.2 中,虽然返回值为 0(成功)并且确实创建了库对象(我使用管理控制台手动检查),但 URI 变量保持空白,因此任何后续设置属性等操作都会失败。

两个版本的文档都将 URI 列为此函数的输出参数。

有没有人有这方面的知识?

编辑:我使用的代码如下:

和输出:

我正在尝试使用它来解决这个问题PROC METADATA,这似乎是有效的。:\

编辑#2:我刚刚意识到我没有提到这是在 SCL 代码中。

0 投票
2 回答
1559 浏览

sas - 在 OPEN VMS 中使用 PROC IMPORT 时出现 SAS 错误

我在 OpenVMS 8.3 平台上运行 SAS 版本 8.1。我尝试了 2 种不同的方法来导入 csv 数据文件,但似乎都无法让它们中的任何一种正常工作。如果有人对我可能做错了什么有任何想法,那就太好了。这似乎是一件相当简单的事情。

CSV 文件

SSID,field1,......(等)

AA9999999,043844,.......(等)

方法A——这似乎“几乎”有效。

数据 JU2_DAT;

出于某种原因,ID 字段的最后一个字符被截断了......而不是得到 9 个字符,我只得到 8 个字符。

方法B

PROC IMPORT DATAFILE=STD_JU2 OUT=JU2_DAT DBMS=CSV ; 获取名称=是;

这种方法似乎根本没有运行。它将 CPU 固定在 100%,当我终止进程时,LOG 中出现以下错误。这让我感到困惑,因为我没有在任何类型的窗口环境中运行它。

错误:无法打开 X 显示。检查显示名称/服务器访问授权。

+错误:无法打开 X 显示。检查显示名称/服务器访问授权。

+错误:无法打开 X 显示。检查显示名称/服务器访问授权。

+

+

错误:设备不支持全屏。

+ERROR:设备不支持全屏。

+ERROR:设备不支持全屏。

错误:在列表中找不到命名项目。

+错误:在列表中找不到命名项目。

+错误:在列表中找不到命名项目。

0 投票
4 回答
6865 浏览

ide - SAS 语言的最佳非 SAS IDE 是什么?

我正在研究将在 UNIX 下运行的 SAS 代码。理想情况下,IDE 将具有:

  • 智能代码格式化(不需要自动完成)。
  • 通过 SFTP/SSH/SCP 将代码传输到服务器的能力。
  • 能够通过 ssh 和 -e 在服务器上执行代码
  • 能够将日志拉回并进行格式化。

想法?

我正在查看用于 SAS 的 MultiEdit Lite(它似乎具有功能,但实际上看起来很糟糕……太糟糕了,它让人分心)。还有其他人吗?Eclipse 可以充当 SAS IDE 吗?

0 投票
3 回答
1071 浏览

sockets - OpenVMS 下 SAS 中套接字的错误处理

我在 OpenVMS 上使用 SAS 9.2 通过使用文件名语句指定的套接字连接到外部数据源:

这在 99% 的时间里都有效(应该如此)。但是,有时应该在远程端口上侦听的程序却不是。目前这会导致程序退出并出现错误:

之后我们再试一次,它通常可以工作。但是,这变得乏味,所以我想在程序中检测到这个错误并在那里处理它。有人知道在 SAS 中检测此类错误的方法吗?

我尝试使用 fileref() 函数检查 fileref extsrc 的有效性,但这只是返回 -20005 ,这意味着 fileref 已分配但不指向本地文件(这是真的)。只有当我在数据步骤中使用 fileref 时,错误才会变得明显,所以我想做一些类似的事情:

[update1] 我正在尝试下面的建议,但在真正的heisenbug时尚中,问题在过去几天没有出现,所以我不确定最终的解决方案是什么。[/更新1]

[update2] 错误终于又出现了。根据 cmjohns 的回答,发生此错误后 syserr 的值为 1012 。我现在将观察 syserr 的值,如果失败,则重试固定次数。[/更新2]

[update3] 我已经运行了几天的一些代码,现在可以运行了。另一个问题是(当然)如果&syserr获得的值高于 6,则会发生错误情况,因此根据您的errorabend/noerrorabend设置,这会导致程序完全结束,或者导致程序以obs=0syntaxchek 模式继续。两者都是不可取的。解决方案是options noerrorabend nosyntaxcheck在产生此错误的数据步之前设置。此外,如果发生错误,我必须清除文件名 extsrc 并重新分配它。最后,一旦这段代码完成,我就会恢复错误结束。如果我恢复 nosyntaxcheck,这会导致 SAS 检测到先前的错误情况并在该点切换到 syntaxcheck 模式,这也是不可取的。[/更新3]

0 投票
2 回答
1726 浏览

sas - 以编程方式编译 SAS SCL 代码

是否有在 Windows 中编译 SAS 9.1.3 SCL 代码(NB 不是普通 SAS 代码)的编程方式?我发现这样做的唯一方法是使用 SAS GUI:我们有一个 Perl 脚本,它将击键发送到 UI。虽然这可行(有点),但它很丑陋且容易出错,而且太脆弱而无法添加到我们的自动构建脚本中。

编辑:我最初的问题可能有点不清楚。我知道proc build;我的问题是首先将一些纯文本作为 SCL 条目放入 SAS 目录中。

0 投票
2 回答
3809 浏览

character-encoding - 如何以编程方式获取 SAS 编码选项?

如何以encoding编程方式找出 SAS 全局选项?我可以运行proc options,它会给我答案,但我需要从代码中完成。

我希望能在“查看宏符号 &sysencoding”这一行得到答案,但这可能太令人期待了。我宁愿避免脆弱的事情,比如写入外部文件和重新解析。