问题标签 [sas-studio]
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.
date - SAS 日期格式返回审查
我有一个名为 Last Payment 的专栏
所有的观察都遵循这个结构,我尝试了一个子字符串,这样
这不起作用,我尝试使用 date7 格式化日期。和 date.9 但都只返回 ********,有人可以帮我将其格式化为 ddmmmyy ty。
sas - 使用 proc 聚合意味着 SAS
对于一个项目,我有一个包含 150 万个条目的大型数据集,我希望通过一些约束变量来聚合一些汽车贷款数据,例如:
国家、货币、ID、固定或浮动、执行、初始贷款价值、汽车类型、汽车制造商
我想知道是否可以通过将数字的初始贷款值相加然后将相似的变量压缩成具有相同观察值的一行来聚合数据,这样我就可以将第一个数据集变成第二个
本质上是在寻找一种在连接字符变量时对数值求和的方法。
我试过这段代码
不确定我是否必须使用 proc sql(对于如此大的数据集来说太慢了)或者可能是数据步骤。
任何连接方面的帮助将不胜感激。
arrays - 计算 ID 并分配年份
我有一个如下所示的数据集:
我正在尝试构建一个名为 Year 的变量,然后可以使用它来识别 ID 和 P1-P4 是一个数组,每一行代表一年。这样数据集就会看起来像。
我最初使用此代码:
但是现在我每次都使用不同的数据集并且我不知道 ID 的结构,所以我不能每次都将 ID=1 更改为 8 以适应数据集。
我的问题:有没有办法通过数据集来做到这一点,可能是一个计数?
arrays - 阵列突然不工作
我一直在使用一个在最近更新数据之前一直运行良好的数组。可以按如下方式构建示例数据集:
目标是创建一个数组,当年份等于基准年(取决于一些限制)时,该数组将标志 = 1,如下所示:
对于固定资产,这很容易,当年份 = 基准年时,标志只需要 = 1
用于在当年重新定价时浮动 flag=1。例如,如果上一次重新定价是在 2011 年,并且每两年重新定价一次,那么它会在 2011、2013、2015、2017、2019、2021 年重新定价。那么对于 2018 年,它会在 2 年的时间内重新定价。然后是 2019 年,在 2 年内重新定价。我只标记 2017-2020 年,所以我会寻找这样的表格
我以前使用的代码是:
我已经意识到如果年份是偶数或奇数,我需要添加一个捕获,我稍后会添加这个。我的问题是为什么会出现此错误,数组应该足够大以进行操作?
编辑:附加日志
sas - 寻找三年的中点
我有一个数据集,它代表三年内的销售额:
我正在寻找一种方法来找到三年的中间点,平均销售点
更新的数据集将读取
因此,本质上是在寻找销售的中点发生在三年中的哪一部分。
欣赏。
编辑:我一直在尝试的重量和过程意味着
我一直在尝试使用 proc 方法和权重函数,但它并没有给我三年的平均分
sas - Left Join 折叠数据
我正在处理一些债券数据,我希望离开加入利率预测。我的债券日期数据集如下所示:
我希望左连接(甚至完全连接)的第二个数据集看起来像
我得到的数据集将年份折叠成 1 并弄乱了我一直在运行的其余分析,看起来像
我想要的数据集看起来像这样
我一直在使用的代码是一个非常标准的 proc sql
sas - Sas 自动调用宏库不工作
直到最近,我一直在使用宏库来查找和编译我的宏代码,SAS 无法加载宏。
我使用的代码是:
我的宏作为 MacroOne.Sas 保存在上面的文件路径中,我尝试在 SAS 中运行命令
由于某种原因,它不再编译了,有什么帮助吗?
macros - 刷新宏库
我一直在使用宏库,这样我就可以使用宏而无需先编译它们。问题是当我更改宏并保存时,然后刷新宏库的文件名,这还不足以更新和使用新宏吗?
任何人都知道为什么它在保存之前仍在使用和编译旧宏?
arrays - 循环和输出
我试图让我的循环和输出语句变得有点方便,目前我有一笔贷款,它像这样摊销:
我正在尝试创建一个看起来像这样的成熟度和重新发行配置文件,我将在提交当前代码时解释逻辑:
所以逻辑是:
Payment2017 = 年初余额 Payment2018 - 2020 = 每期支付的金额 F1-F3 是每期支付的贷款比例。
MP2017-MP2020 是偿还的贷款金额 - 本质上是
NI2017-NI2020 是新发行的金额,如果您假设每次我还清一点贷款,它就会重新添加到贷款中。所以我正在使用的当前代码看起来像这样,但我在输出和循环方面遇到了一些问题。
我正在尝试为前两行找到一种方法,使其保持当前的输出方式,但第三行需要第二行(或 newissuance2019)的列的总和,然后将其乘以分数 1
所以基本上输出看起来像我在数据需要步骤中放入的表。
TIA。
sas - Proc 表示 - 计算份额/权重
我正在使用 proc 方法来计算业务线支付的份额,数据如下所示:
我正在计算一个附加列,该列按组(business_line)计算付款的百分比(权重),如下所示:
到目前为止我使用的代码:
我也试过
感谢帮助。