SAS使用数据集创建其他数据集

时间:2017-03-29 14:54:39

标签: sas

我应该创建一个摘要数据集,其中包含按性别和组细分的平均值,中位数和标准差(使用CLASS语句)。使用此摘要数据集,创建四个其他数据集(在一个DATA步骤中),如下所示:

(1)宏伟的意思 (2)按性别划分的统计数据 (3)按组分类的统计数据 (4)按性别和群体细分的统计数据

给出提示使用CHARTYPE选项。

我提供了我尝试过的解决方案,但我不认为我是按照要求的方式做到的。

DATA CLINICAL;
   *Use LENGTH statement to control the order of
    variables in the data set;
   LENGTH PATIENT VISIT DATE_VISIT 8;
   RETAIN DATE_VISIT WEIGHT;
   DO PATIENT = 1 TO 25;
      IF RANUNI(135) LT .5 THEN GENDER = 'Female';
      ELSE GENDER = 'Male';
      X = RANUNI(135);
      IF X LT .33 THEN GROUP = 'A';
      ELSE IF X LT .66 THEN GROUP = 'B';
      ELSE GROUP = 'C';
      DO VISIT = 1 TO INT(RANUNI(135)*5);
         IF VISIT = 1 THEN DO;
             DATE_VISIT = INT(RANUNI(135)*100) + 15800;
             WEIGHT = INT(RANNOR(135)*10 + 150);
         END;
         ELSE DO;
            DATE_VISIT = DATE_VISIT + VISIT*(10 + INT(RANUNI(135)*50));
            WEIGHT = WEIGHT + INT(RANNOR(135)*10);
         END;
         OUTPUT;
         IF RANUNI(135) LT .2 THEN LEAVE;
      END;
   END;
   DROP X;
   FORMAT DATE_VISIT DATE9.;
RUN;
PROC MEANS DATA=CLINICAL;
CLASS GENDER GROUP;
OUTPUT OUT=SUMMARY
       MEAN=
       MEDIAN=
       STDDEV= / AUTONAME;
RUN;

1 个答案:

答案 0 :(得分:1)

不,他们要求你做的是:

  1. 使用OUTPUT中的PROC MEANS语句创建摘要数据集。在TYPES中选择相应的CLASSPROC MEANS值,以便在输出中显示所有四个数据集。
  2. 使用data语句中包含四个数据集名称的单个数据步骤,有选择地将这些行输出到正确的数据集。您可以使用_TYPE_变量来确定输出行的数据集。
  3. CHARTYPES只表示您的_TYPE_变量看起来像1001而不是9(基本上是二进制表示)。 1001表示使用哪个类变量(第一个和第四个)来创建该突破。 (只有两个类变量,您可以使用值00011011。对于那些不习惯二进制思考的非程序员来说,这有时会更容易(这些值在十进制中为0123没有CHARTYPES,因此你可能更难分辨哪个变量与哪个变量相对应。)