问题标签 [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.

0 投票
1 回答
151 浏览

sas - SAS Studio 导入错误

我正在尝试在 VirtualBox 中使用 SAS Studio,但当我运行某些脚本时 - 我遇到了很多错误。即,当我运行以下代码时:

我得到错误:

错误:DBMS 类型 EXCEL 对导入无效。注意:SAS 系统因错误而停止处理此步骤。注意:使用 PROCEDURE IMPORT(总处理时间):实时 0.01 秒 cpu 时间 0.00 秒

我想知道,与普通桌面版程序相比,SAS Studio 的功能是什么?例如,当我尝试运行PROC ASSOC或某些绘图函数时,我收到一个错误,指出该函数“不可用”,所以我想知道这些过程是否只是受到 SAS Studio 的限制,或者我是否有语法错误。

任何帮助表示赞赏。

0 投票
1 回答
584 浏览

sas - SAS 中的 PROC GENMOD 预测变量的参考值无效且无有效观察值

我正在尝试p1ODD在二进制预测变量(c1kdscc3c1kdscc4)上建模二进制结果( c1kdscc5)。当我尝试这样做时PROC GENMOD,我的日志显示我有一个无效的参考值c1kdscc3。它还告诉我,由于响应变量中的响应无效,因此没有有效的观察结果,尽管在我的代码中早些时候我已经定义了所有内容。

以下是部分之前出现的有问题的代码PROC GENMOD

有谁知道我是否应该修复如何定义 c1kdscc3 到 c1kdscc5 的参考值以及如何最好地重写我的响应变量以在 PROC GENMOD 中工作?

日志和错误消息:

谢谢!

0 投票
2 回答
42 浏览

sql - Sas 处理观察结果

我是 SAS 新手,但熟悉 R、MATLAB 和 Stata。

在研究时我还没有发现的一件事是能够在整个数据集中处理单个观察结果。假设这个数据集是我正在处理的每一步:

我将举例说明我想要做什么。

  1. 取第 2 段和第 3 段体积的平均值,这样我就输出了一个表格:

    1. 此外,我希望在这些细分中取几列的平均值,例如

      /li>

通常,寻找允许我在数据集中为诸如均值、求和、创建表和任何类型的数据操作等运算符工作的语法。

0 投票
0 回答
58 浏览

sql - 在 sas 中使用精确的观察结果

我正在使用如下数据集:

我正在寻找一个需要操作上述数据集的新表,例如我希望创建一个新数据集,其中 V(R,C)=(Row,Column) +-(R,C)

V(2,2)= (2,4)-(3,2) 即 V(2,2)= 2.5 - 0.625

如果有办法大规模这样做,我似乎无法找到在 SaS 中单独使用观察的位置。

我正在寻找的结果最终是一个新的表/数据集,其中结果来自原始数据集

所以我正在寻找(对于 2,3)2.5-0.625=1.9,即在第二年有一个新发行的 2.5(由第 4 列表示),然后是 0.625(由第 3 列第 2 行表示)原始数据集。

我要问的是为什么 SAS/SQL 使得使用多维数组进行基本算术变得如此困难。

成熟度配置文件来自数据集中右上方显示的 3x3 矩阵 - 我已将其合并到此处。

新发行是 1x3 - 合并在下面矩阵的底线。

初始音量 (YearZero) 是一个 1x1 - 一个整数,在左上角合并。

0 投票
2 回答
811 浏览

arrays - 嵌套 If do 语句 SAS

我有一个如下所示的数据集:

我正在寻找基于一些输入创建一个数组:

到目前为止,我的代码如下所示:

该代码适用于原始 if 函数,但我想通过引入 else if FixedorFloating=0 来使其更具动态性。

我还希望使我的函数能够破译 ID 是否在 ID 的一年 +2i 年。IE

我不确定这是合理的还是不正确的。

日志的错误如下所示:

我假设 if do 后跟 else-if do 的结构不正确。

0 投票
1 回答
233 浏览

if-statement - 错误:数组下标超出范围 i+2 年

我有一个如下所示的数据集:

我正在寻找基于一些输入创建一个数组:

数组标准是这样的,如果 ID= Year +2i 然后 flag = 1

例如

我的代码目前是第 i+2 年(以红色突出显示)有问题,但第(i)年工作正常。

*循环遍历数组;

跑;

寻找一种基于 Id= Year + 2i, TIA 的标记方式

0 投票
1 回答
52 浏览

loops - SAS 中的粘性宏变量

我正在运行一个包含宏函数的宏循环,如下所示:

宏变量本身包含一些宏函数,如下所示:

这些粘性、嵌套的宏循环和变量的正确语法是什么?我似乎记得使用 &&j 和 &x 但我遇到了错误。

如果我用 2 替换所有 &j,代码就可以工作,所以代码很好,循环的递归性质没有正确注入变量。TIA。

0 投票
2 回答
59 浏览

arrays - 在 SAS 中使用上三角阵列(挑战 +2 分)

我希望通过将我的代码转换为数组和循环来提高我的代码效率。我正在使用的数据是这样开始的:

因此,对于每个 ID(基本上是按映射、资产、固定和执行排序的数据),我希望为支付方案构建一个配置文件。

第一个 ID 的支付向量如下所示:

它由公式表示

以上可以在数组中创建,如果您愿意,可以给出示例代码。

接下来,假设每次付款都会被替换,即 2018 年支付 30 时,必须替换,依此类推。

我正在寻找一个显示付款移动的配置文件(并且为了说明,但在代码中不需要,在括号中的流入),这样的付款移动 - 对于 ID = 1:

因此,如果您向前看,可以想到行是哪一年,而列则代表即将到来的年份。

因此,在 2019 年,查看 2017 年和 2018 年要支付的款项是不适用的,因为这些款项已经过去/现在无法支付。

至于 2018 年,看 2019 年必须支付的费用,你必须支付你现在拥有的钱的三分之一,所以 -10。

我一直在努力将这个数据集逐行转换为数组,但肯定有一种使用数组的更快方法:

到目前为止,我使用的代码如下所示:

明天我会添加代码......但无论如何代码都不起作用。

0 投票
1 回答
34 浏览

arrays - 用空白扩展数据集

我有一个数据集如下:

我正在寻找构建一个数组,使每个 ID 都有四个年份 2017-2020,随后的年份将用我拥有的一段数组代码填充

像这样

一开始我只需要用空白复制数据集,

到目前为止我尝试过的代码是

但当然,这会保持所有观察的重复。所以我尝试了一个数组。

但我不知道在这两种协议上从哪里开始。

问题是如何将 ID1-8 的数据集外推到 ID 为 1111-8888 的数据集,其中每个 ID 重复 4 次,并带有空格。

0 投票
1 回答
181 浏览

import - 即使变量被删除 SAS 也导入错误

我正在导入一个分号分隔的文件

当我使用以下代码导入此 txt 文件时,SAS 不喜欢数字和字符的混合:

即使我没有尝试加载数字,它在真实数据集中要长得多,比如 12 个数字后跟四个字符,它会在日志中返回此错误

我想做一个典型的 infile 和 informat 但是有 32 个变量和 200 万行,我只是不能花时间找出每个变量需要读入的范围和样式。所以我问是否有办法格式化该特定变量,但坚持使用 proc 导入的简易性。

但我也在问这是否真的影响我的进口?因为在检查输出时数据看起来很好。