我应该创建一个摘要数据集,其中包含按性别和组细分的平均值,中位数和标准差(使用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;
答案 0 :(得分:1)
不,他们要求你做的是:
OUTPUT
中的PROC MEANS
语句创建摘要数据集。在TYPES
中选择相应的CLASS
和PROC MEANS
值,以便在输出中显示所有四个数据集。data
语句中包含四个数据集名称的单个数据步骤,有选择地将这些行输出到正确的数据集。您可以使用_TYPE_
变量来确定输出行的数据集。 CHARTYPES
只表示您的_TYPE_
变量看起来像1001
而不是9
(基本上是二进制表示)。 1001
表示使用哪个类变量(第一个和第四个)来创建该突破。 (只有两个类变量,您可以使用值00
,01
,10
,11
。对于那些不习惯二进制思考的非程序员来说,这有时会更容易(这些值在十进制中为0
,1
,2
和3
没有CHARTYPES
,因此你可能更难分辨哪个变量与哪个变量相对应。)