【发布时间】:2019-06-11 17:31:30
【问题描述】:
我对 SAS 非常陌生,我正在尝试生成分类变量的总体数据集。我需要得到一个包含 400 个观测值和 99 个变量的数据集。第一列(变量 1)将有 4 个 1 和 396 个 0,第二列(变量 2)将有 8 个 1 和 392 个 0,依此类推,直到最后一列(变量 99)将有 396 个 1 和 4 0 的。我一直在尝试生成这个数据集,但到目前为止还没有运气。我相信我必须使用 MACROS 和 DO-LOOPS、ARRAYS 甚至嵌套 LOOPS。
到目前为止,这就是我所拥有的,但我很漂亮,我离实际的解决方案还很远;
DATA population;
ARRAY pop V1-V99;
DO N=1 TO 400;
DO i=1 TO dim(pop);
pop(i)=.....;
END;
DROP i;
DROP N;
END;
RUN;
【问题讨论】:
-
数组创建一行数据,而不是列。您能否以行而非列的形式重新定义您的要求?如果没有,我想你可以生成数据然后转置它。
-
标准统计分析结构要求我将变量保持为列,将行保持为受访者(或观察)。所以不幸的是,我将无法根据行重新定义我的要求,我也没有看到行之间的关系。但我愿意尝试您生成正确转置版本数据集的想法。你知道我会怎么做吗?
-
因此,对于第一个变量,您希望 400 个观察结果中有 4 个为真,其余为假。您是否关心哪些观察结果为真?可以是前4吗?最后4个?还是需要 4 次随机观察?
-
哪 4 个观察结果是正确的并不重要。您列出的这 3 种情况中的任何一种都适合我
-
稍微简化了我的回答,希望这对你来说足够动态:)
标签: arrays sas nested-loops sas-macro do-loops