问题标签 [sas-dis]
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.
sas - 在 SAS 数据集成中,创建用户编写的转换以在特定条件为真时跳过进一步的作业执行而不给出错误
我想创建一个用户编写的转换,以在某些条件为真时跳过进一步的作业执行。我试过代码
但是这些语句给出了错误,例如由于 %abort 语句而停止处理。我不希望显示错误消息,只需跳过剩余的作业执行即可。例如,如果我的源表的观察值为零,则在不记录错误消息或警告的情况下退出工作。
sas - %NRQUOTE 'removal' 的改进
我有以下有效的代码,但我想知道是否有人能想出一个更好的方法来“删除” %nrquote
. 我不得不添加一个有效的%SUBSTR
函数,但我很想知道是否有任何其他建议,以及是否有人可以帮助解释为什么没有宏定义中的%let
语句代码无法工作。mvar
如果没有 %let 语句,代码将失败并出现以下错误:
sas - 哪个版本的 SAS 与 SAS 存储过程版本 2.0 兼容?它与版本 9 兼容吗?
SAS Stored process 2.0 与 SAS 9.3 兼容,但想知道它是否与从 SAS 9 到 SAS 9.4 的所有版本兼容?
sas - SAS 内存不足错误
我在 SAS DIS(数据集成工作室)中收到“远程进程内存不足”:
由于我的方法可能是错误的,我将解释我正在处理的问题以及我决定的解决方案:
我有大量需要清理的客户名称。为了实现这一点,我使用了一个 .csv 文件,其中包含正则表达式模式及其相应的替换;(我使用这种方法是因为更容易将新模式添加到文件中并将其上传到服务器以供部署的作业读取,而不是对新规则进行编码并重新部署作业)。
为了让我的数据步骤利用文件中的规则,我在数据步骤的第一次迭代中将模式及其替换添加到数组中,然后将它们应用于我的名字。就像是:
当我在大约 10K 行或更少的行上运行它时,它总是能以极快的速度完成并完成。如果我尝试约 15K 行,它会阻塞很长时间,并最终引发“内存不足”错误。
为了尝试解决这个问题,我构建了一个循环(使用 SAS DIS 循环转换),其中我首先对数据集的行进行编号,然后一次以 10000 个名称的批次应用前面的逻辑。很长一段时间后,我遇到了同样的内存不足错误,但是当我检查我的目标表(Teradata)时,我注意到它运行并加载了除最后一次迭代之外的所有数据。当我将循环大小从 10000 切换到 1000 时,我看到了完全相同的行为。
出于测试目的,我只处理了大约 500K 行,但很快将不得不处理数百万行,并且担心这将如何工作。作为参考,我正在应用的清洁规则集目前是 20 行,但可能会增长到几百行。
- 使用带有规则的文件而不是直接在我的数据步骤中对正则表达式进行硬编码,效率会显着降低吗?
- 有什么方法可以实现这一点而不必循环?
- 由于我的数据集在每次循环迭代时都会被覆盖,对于 1000 行长(如 3 列)的数据集,怎么会出现内存不足错误?
- 最终,我该如何解决这个内存不足错误?
谢谢!
sas - 如何在 SAS DI Studio 中安排存储过程?
我想使用 Enterprise Guide 作为创建 SAS 作业(仅限基本 SAS 代码)的开发环境,但是我需要使用 DI Studio 来安排该作业在特定时间运行。
我想使用 EG 来开发这项工作,因为我相信它是一个比 DI 更好的开发环境(程序编辑器等)。
我还希望作业作为存储过程存在,以便用户可以在必要时在计划之外运行它。
我可以创建一个仅调用现有存储过程的简单 DI Studio 作业吗?
sas - 从 SAS 元数据服务器检索基于 AuthenticationDomain 的登录信息失败
我在执行 SAS 作业时遇到 SAS 问题,出现错误“从 SAS 元数据服务器检索基于 AuthenticationDomain 的登录信息失败”我的表在 teradata 服务器中。请指导我。
在这里,我发布了一些日志文件代码,我相信它可以解释这个问题。
sas - 从 SAS DI 中的表中导出数据的方法有哪些?
我对 SAS 很陌生,我在 SAS DI 中有一些表在我需要导出到文本文件的库存下,有什么容易做到这一点?我可以以某种方式在 SAS EG 中创建一个程序来显示其中的数据然后导出吗?
sas - 使用带有编号宏变量的 SAS SET 语句
我正在尝试在 SAS DI Studio 中创建一个自定义转换来执行一些我想要经常重用的复杂处理。为了实现这一点,作为第一步,我试图复制一个简单的 APPEND 转换的功能。
为此,我启用了多个输入(最多 10 个),并尝试利用此处&_INPUTn
引用的和&_INPUT_count
宏变量。我想简单地使用代码
但是,我收到以下错误:
错误:编号数据集列表中缺少数字后缀 (WORK.SOME_INPUT_TABLE-WORK.ANOTHER_INPUT_TABLE)
因为宏变量被解析为它们所引用的数据集的名称,其名称不符合
陈述。我怎样才能解决这个问题?
非常感谢。
sas - 如果填充了数据集,则 SAS DI 停止作业
我对 SAS 很陌生,真的无法理解它的代码,所以在这里寻求帮助。
我有一个正在读取外部 csv 文件的工作,并且有一个由同事创建的宏来验证这个外部文件中的数据并将错误消息打印到工作表中。
我想做的是文件阅读器的预编码,或者通过使用另一个用户编写的代码转换来读取工作表并检查是否存在观察结果,如果存在,则中止工作。通过谷歌搜索,在这里和 SAS 社区之间,我可以找到如何读取数据集并计算观察结果,但我很难弄清楚如何实现它,所以任何指导都将不胜感激
谁能帮我解决这个问题?
谢谢