问题标签 [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 回答
1143 浏览

macros - 遍历多个 txt 文件并在 SAS 中为每个文件创建一个新数据集

我在 SAS 中遇到了一个问题。我在单独的 txt 文件中有一堆每月的天气数据。我目前的目标是阅读这些内容并为每个内容创建一个单独的数据集。或者,我可以看到可以跳过此步骤并更接近将所有这些数据集按日期和时间合并到另一个数据集的最终目标。下面是我对这个问题的尝试。我认为一个宏可以遍历文件名并创建匹配的数据集名称,但显然它没有。另外,为了提高效率,我认为可以将 if/else if 语句替换为 DO 循环,但我无法弄清楚。非常感谢您的帮助!

如果有人想知道这是典型 txt 文件的外观:http ://www.erh.noaa.gov/pbz/hourlywx/hr_pit_13.01

以下是相同形状和格式的 txt 文件列表: http ://www.erh.noaa.gov/pbz/hourlyclimate.htm

0 投票
4 回答
5493 浏览

sql - sas - 使用 BY 语句计算分组数据的移动平均值

我是一名 SAS 初学者,我很好奇以下任务是否可以像目前在我脑海中那样简单得多。

我在名为 user_date_money 的表中有以下(简化的)元数据:

用户 - 日期 - 金钱

每个日历日(过去 4 年)都有不同的用户和日期。数据按用户 ASC 和日期 ASC 排序,示例数据如下所示:

我现在想计算货币的五天移动平均线。我从非常流行的带有 lag() 函数的方法开始,如下所示:

如您所见,如果数据步骤遇到新用户,则会出现此方法的问题。Aron 会从 Anna 那里得到一些滞后值,这当然不应该发生。

现在我的问题:我很确定您可以通过添加一些额外的字段(如 laaggeduser)来处理用户切换,如果您注意到这样的切换,则可以通过重置 N、Sum 和 Mean 变量来处理,但是:

这可以以更简单的方式完成吗?也许以任何方式使用 BY 子句?感谢您的想法和帮助!

此致

0 投票
1 回答
7390 浏览

json - 读取 JSON 文件并将其保存在 SAS 数据集中

我正在尝试从 JSON 文件中读取数据并将值存储在 SAS 数据集中这是我的 JSON 文件test.json

现在我想要像简单的 SAS 数据集这样的输出,我可以在其中以表格形式获取。如果我使用 proc 打印数据集,它将如下所示:

这是我的方法,但没有得到正确的输出。

知道我是怎么做的吗???

0 投票
4 回答
289 浏览

sas - 在 sas datastep 中复制 sql 函数

嗨,另一个快速问题

在我们用于条件连接的proc sql中是否有类似的sas数据步骤

例如

我们可以在 sas datastep中复制它吗

喜欢

0 投票
2 回答
759 浏览

macros - 如何计算条件累积和

我有一个像下面这样的数据集,我正在尝试对事件 2 和 3 进行总计,但略有不同。我只想在 Event_1_dt 小于当前记录中的日期时计算这些事件。我目前正在使用宏 %do 循环来遍历该项目类型的每条记录。虽然这会产生预期的结果,但性能却比预期的要慢。每个 Item_Type 最多可以有 1250 条记录,并且有几千种类型。是否可以在循环完成所有 1250 次迭代之前退出循环?我对尝试加入犹豫不决,因为要统计大约 30 多个事件,但我愿意接受建议。另一个复杂情况是,即使 Event_1_dt 始终大于 Date,它也没有任何其他限制。

对应代码:

跑;

%修补;

%历史;

0 投票
2 回答
267 浏览

sql - 从 BY GROUP 的 .LAST 值推断运行总计

如果我们所拥有的只是 .LAST 变量中的总和,我试图弄清楚如何创建一个运行总计。我创建了一个示例数据集,它应该让我更清楚我所追求的:

;

因此,如您所见,我们只有商店最后一次营业的数据,其中包括前几年的所有销售额。假设销售额完全是线性的并且逐年增加,我将如何告诉 SAS 获取 STORE_ID.LAST 值,然后将其除以我们有数据的年数,以便将其放入 STORE_ID.FIRST 的 SALES 字段中?一旦我弄清楚如何从最后一个字段中获取值到第一个字段中,我计划只运行通常的运行总计(除以计数后,可以通过以下方式创建:

所以,理想情况下,决赛桌的开始是这样的:

...

我查看了 PROC EXPAND,但我无法让它适用于我的情况。非常欢迎任何建议!

0 投票
1 回答
38294 浏览

duplicates - 如何在 SAS 数据步骤中删除重复项

如何在 SAS 数据步骤中删除重复项。

我可以使用 proc 步骤,但如何在数据步骤中删除它。提前致谢

0 投票
1 回答
170 浏览

sas - SAS:数据步骤。按处理

如何汇总以下示例数据以提供客户级别的计算?我正在使用“通过处理”的数据步骤,但我不确定是否应该将其分成两个数据步骤。

我需要为每个球员提取 first type、 first price、 count of types、 uniqueprices计数、 football 投注计数和棒球投注计数。

我似乎无法在同一个数据步骤中将type和结合起来。price

0 投票
2 回答
1390 浏览

sas - 元数据表的 SAS 文件夹路径

我想知道是否有人知道如何检索元数据表的 sas 文件夹路径?

我想列出位于元数据上的每个表的文件夹路径。

例子:

Table FactPortfolio 在管理控制台中位于以下文件夹结构下:Commerc-->Sweden-->Portfolios-->Resources-->Tables

在 sas 的元数据浏览器中,如果我单击表和树以及父树直到到达顶层层次结构,我可以找到文件夹路径。但是,我想用 SAS 中的元数据数据步进函数来检索它。

BR乔纳斯

0 投票
1 回答
161 浏览

sas - 在没有左修剪的数据步骤中从文件输入

我有一个可变长度、非常丑陋的报告文件,我正试图将其读入 SAS。读取文件记录时,我发现从文件左侧自动修剪空格。这使得将原始文件与我的数据步骤中的文件进行比较变得更加困难。如何在不进行自动修剪的情况下读取文件。

读取文件的代码

示例文件,空格替换为 _ 以提高可见性

输出数据集,空格替换为 _ 以获得可见性