问题标签 [datastep]

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 投票
2 回答
474 浏览

sas - 如何跨 SAS 中的许多变量执行相同的数据步?

我有看起来像这样的数据,并且有 500 个带有目标的变量:

变量的名称不像上面那样连续,所以我认为我不能使用类似var1:var500. 我想遍历变量来创建图表。有些变量是连续的,有些是名义变量。

我可以轻松地创建第二个表,其中包含要检查的数据类型。数组似乎对执行循环变量的任务很有用。就像是:

但是这不起作用,它不会检查它是什么类型的变量。如果我们假设我有另一个具有 varname 和 vartype(连续,名义)的 sas.dataset,我如何循环创建给定 vartype 的所需图形?提前致谢。

0 投票
3 回答
391 浏览

sas - 数据步骤中的更新语句

在数据库中,我们有如下电子邮件地址数据集。请注意,对于 id 1003 有两个观察结果

我们收到用户请求更改电子邮件地址如下,

我尝试update在数据步骤中使用该语句

虽然它只改变了 id 1003 的第一个观察结果。

我想要的输出是 1001 1001@gmail.com 1002 1002@gmail.com 1003 1003@yahoo.com 1003 1003@yahoo.com

是否可以使用非 proc sql 方法?

0 投票
0 回答
456 浏览

excel - 将 xlsx 导入 sas 时出错会创建尾随 9

我有一个包含许多工作表的 Excel xlsx 文件,因此我使用宏导入 SAS。

但是,对于一些带小数的值,它会创建一个非常奇怪的尾随 9。例如,在 Excel 中查看的原始 xlsx 读取为 3.2,它在 SAS 数据集中显示为 3.19999999999999。并非所有带小数的值都会发生这种情况,只是偶尔会发生,这真的很烦人。以前有人有过这种经历吗?非常感谢一些帮助。我正在使用 SAS 9.3。

0 投票
1 回答
142 浏览

sas - SAS 将两个不相等的数据集水平设置在一起,向下复制较小的填充

有两个数据集,一个一行,另外 100 行。我想将它们水平设置在一起(而不是合并)并将一行复制到所有 100 行。

现在我做了一个循环来复制较小数据集的行,但是它不是很有效并且填满了我的日志。寻找更清洁的方式。

0 投票
2 回答
191 浏览

sas - SAS 将结果输出到输入数据集(输入和输出数据集名称相同)

我找不到有关此问题的信息,或者无法正确指定问题。

让我用代码问一个问题:
这个操作是

或者特别是

以任何方式危险,还是在 SAS 中被认为是不好的做法?请注意相同的输入和输出数据集名称,这是我的主要观点。SAS 是否正确处理这种情况,因此运行这种数据步骤/过程不会产生模棱两可的结果?

0 投票
1 回答
84 浏览

sas - 如何按一定顺序读取两个数据集?

假设我有 2 个数据集 A 和 B:

我想生成一个具有特定顺序的数据集,如下所示:

如何在没有 POINT= 的情况下通过数据步骤从数据集 A 和 B 中做到这一点?

我试过这个方法:

结果是:

看起来 B 的文件结束指示符终止了这个数据步骤。

我还尝试了另一种使用 POINT= 的方法,得到了正确的结果。但是,由于从 B 访问特定 obs 时需要大量 I/O 时间,这种方法非常慢:

0 投票
1 回答
37 浏览

macros - SAS:数据步骤中的宏程序错误

我找不到此错误的解决方案。我尝试了 usign %eval、%sysfunc 和 %sysevalf,但没有成功。正确评估宏中的“&set”需要什么?

0 投票
1 回答
117 浏览

unix - 如果然后输出在 UNIX SAS 中不起作用

Unix 服务器上的一段代码不工作,但在 PC SAS 上工作。在 UNIX SAS 中执行时,输出数据集 pc_pf_yes_1 和 pc_pf_no_1 都有 0 个观察值,但没有观察到错误。在 PC SAS 中,代码可以正常工作并按预期填充数据集。

以下数据步位于宏中。

primary_flag 是一个二进制变量,其值为 Y 和 N,存储为长度为 1 的字符串。&month。是一个宏变量,存储用于数据选择的月份名称。

在我不知道的宏中是否存在 UNIX SAS 的怪癖?

0 投票
2 回答
1582 浏览

sas - sas 将表格插入 html 电子邮件

是否可以循环遍历表的记录以填充 html 电子邮件而不重复电子邮件的开头和结尾?

在此示例中,我收到一封包含 5 个 1 行表的邮件(因为WORK.MyEmailTable是 5 个记录的表并set在数据步骤中创建了一个循环):

我希望有 1 个 5 行的表。

当您在数据步骤中 使用时,我不知道是否有一种方法可以递归地防止put邮件的开头和结尾。set

(如果不清楚,请告诉我,我会更新。)

谢谢,

0 投票
2 回答
11294 浏览

recursion - 在导出文件期间检测到打开代码语句递归

我尝试在 SAS 中导出文件,但出现“检测到打开代码语句递归”。错误。由于我根据日期导出多个文件,因此我根据提示日期定义为宏变量,因此我想将我的文件命名为使用此变量导出,但它不起作用。如果有人帮助我,我将不胜感激。