问题标签 [proc-sql]

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 投票
3 回答
3716 浏览

sql - 每个唯一 ID 的最小值

这应该相当简单,并提前感谢。我有一个唯一的 ID 列和一个用整数填充的起始列。我想创建一个新列,其中填充了每个唯一 ID 的最短开始日期。示例如下:

标识开始

1 23

1 24

1 34

2 12

2 11

我想要什么

ID START minStart

1 23 23

1 24 23

1 34 23

2 12 11

2 11 11

0 投票
1 回答
153 浏览

sas - 根据现有列创建一长串新变量

我需要为 week0-week187 创建一个变量,而 RBAR 就是这样。数据看起来像:

身份证周

1 0

1 28

1 186

2 187

2 30

如果观察是在给定的一周内,我正在尝试使 week0-week187 变量为 1 或 0,应该看起来像这样

ID 周 WEEK0 WEEK1 ...WEEK28 ...WEEK30...WEEK186 WEEK187

1 0 1 0 ...0...0...0 0

1 28 0 0 ... 1 ... 0 ... 0 0

1 186 0 0 ... 0 ... 0 ... 1 0

2 187 0 0 ... 0 ... 0 ... 0 1

2 30 0 0 ... 0 ... 1 ... 0 0

也许 DO 声明是必要的?大多数时候 proc sql 导致 SAS 崩溃,因为我的计算机是垃圾。SAS代码是首选

0 投票
1 回答
6569 浏览

sql - 子查询中的计算变量

我有一个 PROC SQL 专家的问题。我有这个代码:

显然calculated关键字不起作用,我认为变量必须在同一个选择上。我希望能够colsum在一个 sql 语句中计算和使用子查询。我想避免colsum在每个子查询中重新计算,因为最终我将使用更复杂的函数,如果每次重新计算,这些函数可能会减慢代码的速度。

我发现这个问题似乎几乎相同,但我没有设法使代码与该答案一起工作。

编辑:稍微更改了代码。

它实际上是Year=calculated colsum。OtherData 基本上是一个参考表,其中Year没有重复项。这是一个例子:

会有缺失值,这很好。我知道这可以通过多个 proc sql 语句轻松完成,但挑战在于在单个语句中完成。SUM可以是生成要在 OtherData 中查找的输出的任何其他函数。

有没有办法做到这一点 ?

0 投票
2 回答
5950 浏览

sas - 根据现有的 id 变量创建唯一的 id 变量

试图从已经存在的标识符中制作一个更简单的唯一标识符。从仅 ID 列开始,我想创建一个新的、更简单的 id 列,以便最终数据如下所示。有 100 万 + id,所以如果 thens 不是一个选项,也许是一个 do 语句?

ID NEWid

1234 1

3456 2

1234 1

6789 3

1234 1

0 投票
1 回答
120 浏览

sas - 基于字符串的虚拟变量

我想搜索一个字符变量,找到所有包含“internet”一词的观察结果,并将 1 插入为这些观察结果创建的虚拟变量中。真的,我只需要帮助在一列中搜索字符串,但我找不到可以引用单列的函数。

0 投票
2 回答
63 浏览

sql - 为唯一会话创建变量

我有一些关于人们收听广播的时间、时长和频道的数据。我需要创建一个变量,该变量sessions将收音机打开时出现的所有条目分组。因为数据可能包含一些错误,所以我想说,如果从一个通道周期结束到下一个通道周期结束不到五分钟,那么它仍然是同一个会话。希望一个简短的例子可以澄清。

我想创建变量会话,以便

为了定义 1 个会话,我需要使用entry_timedate如果它从晚上 11 点到第二天早上),那么如果entry_time+duration + (5minutes) < entry_time(next channel)会话发生变化。这一直在杀死我,简单的数组无法解决问题,或者我使用数组的尝试没有奏效。提前致谢

0 投票
3 回答
416 浏览

sql - 用于查找值的 proc sql vs data 步骤形成一个包含异常的引用表

我正在尝试找出特定州特定城市中特定商品的税值。税值在这样的参考表中:

现在让我们说,如果我正在为(内华达雷诺雪茄)征税,那么参考文献中存在完全匹配,所以答案是 0.11。但是,如果我寻找 (nevada reno chicken) 不存在完全匹配,但 (all all chicken) 可以用作参考,输出将为 0.04。

您能否建议PROC SQL或匹配合并DATA步骤逻辑来处理这种情况?

0 投票
1 回答
62 浏览

sql - 为每个 id 创建唯一的会话变量

我有一些关于人们收听广播的时间、时长和频道的数据。我需要创建一个名为 session 的变量,它将收音机打开时出现的所有条目分组。因为数据可能包含一些错误,所以我想说,如果从一个通道周期结束到下一个通道周期结束不到五分钟,那么它仍然是同一个会话。希望一个简短的例子可以澄清。

我想创建变量会话,以便

为了定义 1 个会话,我需要使用 entry_time (如果从晚上 11 点到第二天早上,则使用日期),这样如果 entry_time+duration + (5minutes) < entry_time(next channel) 那么会话会改变。这一直在杀死我,简单的数组无法解决问题,或者我使用数组的尝试没有奏效。提前致谢

以下代码运行良好,但在 id 更改时不会重新开始会话

0 投票
3 回答
210 浏览

sas - 除了 Proc Sql 和 Merge 语句之外,还有其他方法可以合并 SAS 中的两个数据集吗?

我想合并两个数据集,但不使用合并语句和 Proc sql,我可以这样做吗?有没有办法做同样的事情

0 投票
3 回答
65 浏览

sql - 每周跟踪客户保留率

我有给定客户的开始和结束周,我需要为他们订阅的周制作面板数据。我已将数据处理成易于转换的形式,但是当我转置时,我没有填写开始和结束之间的几周。希望一个例子能对我的请求有所帮助。周从 0 开始,到 61 结束,因此为了简单起见,强制任何高于 61 的周为 61。如果他们仍然订阅,则填充 1,否则填充空白。

我想要什么