问题标签 [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.
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
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代码是首选
sql - 子查询中的计算变量
我有一个 PROC SQL 专家的问题。我有这个代码:
显然calculated
关键字不起作用,我认为变量必须在同一个选择上。我希望能够colsum
在一个 sql 语句中计算和使用子查询。我想避免colsum
在每个子查询中重新计算,因为最终我将使用更复杂的函数,如果每次重新计算,这些函数可能会减慢代码的速度。
我发现这个问题似乎几乎相同,但我没有设法使代码与该答案一起工作。
编辑:稍微更改了代码。
它实际上是Year=calculated colsum
。OtherData 基本上是一个参考表,其中Year
没有重复项。这是一个例子:
会有缺失值,这很好。我知道这可以通过多个 proc sql 语句轻松完成,但挑战在于在单个语句中完成。SUM
可以是生成要在 OtherData 中查找的输出的任何其他函数。
有没有办法做到这一点 ?
sas - 根据现有的 id 变量创建唯一的 id 变量
试图从已经存在的标识符中制作一个更简单的唯一标识符。从仅 ID 列开始,我想创建一个新的、更简单的 id 列,以便最终数据如下所示。有 100 万 + id,所以如果 thens 不是一个选项,也许是一个 do 语句?
ID NEWid
1234 1
3456 2
1234 1
6789 3
1234 1
sas - 基于字符串的虚拟变量
我想搜索一个字符变量,找到所有包含“internet”一词的观察结果,并将 1 插入为这些观察结果创建的虚拟变量中。真的,我只需要帮助在一列中搜索字符串,但我找不到可以引用单列的函数。
sql - 为唯一会话创建变量
我有一些关于人们收听广播的时间、时长和频道的数据。我需要创建一个变量,该变量sessions
将收音机打开时出现的所有条目分组。因为数据可能包含一些错误,所以我想说,如果从一个通道周期结束到下一个通道周期结束不到五分钟,那么它仍然是同一个会话。希望一个简短的例子可以澄清。
我想创建变量会话,以便
为了定义 1 个会话,我需要使用entry_time
(date
如果它从晚上 11 点到第二天早上),那么如果entry_time+duration + (5minutes) < entry_time(next channel)
会话发生变化。这一直在杀死我,简单的数组无法解决问题,或者我使用数组的尝试没有奏效。提前致谢
sql - 用于查找值的 proc sql vs data 步骤形成一个包含异常的引用表
我正在尝试找出特定州特定城市中特定商品的税值。税值在这样的参考表中:
现在让我们说,如果我正在为(内华达雷诺雪茄)征税,那么参考文献中存在完全匹配,所以答案是 0.11。但是,如果我寻找 (nevada reno chicken) 不存在完全匹配,但 (all all chicken) 可以用作参考,输出将为 0.04。
您能否建议PROC SQL
或匹配合并DATA
步骤逻辑来处理这种情况?
sql - 为每个 id 创建唯一的会话变量
我有一些关于人们收听广播的时间、时长和频道的数据。我需要创建一个名为 session 的变量,它将收音机打开时出现的所有条目分组。因为数据可能包含一些错误,所以我想说,如果从一个通道周期结束到下一个通道周期结束不到五分钟,那么它仍然是同一个会话。希望一个简短的例子可以澄清。
我想创建变量会话,以便
为了定义 1 个会话,我需要使用 entry_time (如果从晚上 11 点到第二天早上,则使用日期),这样如果 entry_time+duration + (5minutes) < entry_time(next channel) 那么会话会改变。这一直在杀死我,简单的数组无法解决问题,或者我使用数组的尝试没有奏效。提前致谢
以下代码运行良好,但在 id 更改时不会重新开始会话
sas - 除了 Proc Sql 和 Merge 语句之外,还有其他方法可以合并 SAS 中的两个数据集吗?
我想合并两个数据集,但不使用合并语句和 Proc sql,我可以这样做吗?有没有办法做同样的事情
sql - 每周跟踪客户保留率
我有给定客户的开始和结束周,我需要为他们订阅的周制作面板数据。我已将数据处理成易于转换的形式,但是当我转置时,我没有填写开始和结束之间的几周。希望一个例子能对我的请求有所帮助。周从 0 开始,到 61 结束,因此为了简单起见,强制任何高于 61 的周为 61。如果他们仍然订阅,则填充 1,否则填充空白。
我想要什么