我想知道在这段代码中FORMAT(倒数第二行)行上的IQ.
是什么?它是否意味着变量名的终止?还是说它是一个整数变换?还是别的什么?谢谢你!
数据集称为IQ,并且它只包含一个称为IQ的数值变量。这些数字似乎是整数。
PROC FORMAT;
VALUE IQ
75 - <85 = '75 <= IQ score < 85'
85 - <95 = '85 <= IQ score < 95'
95 - <105 = '95 <= IQ score < 105'
105 - <115 = '105 <= IQ score < 115'
115 - <125 = '115 <= IQ score < 125'
125 - <135 = '125 <= IQ score < 135'
135 - <145 = '135 <= IQ score < 145'
145 - <155 = '145 <= IQ score < 155'
;
RUN;
/* *************************** Frequency table of the grouped IQ score **************************** */
PROC FREQ DATA = IQ;
TABLES IQ;
FORMAT IQ IQ.;
RUN;
FORMAT规范的语法是格式名称后面跟着可选的宽度后面跟着句点后面跟着可选的十进制宽度。
变量名不能包含句号,因此period允许SAS将其识别为FORMAT规范,而不是另一个变量名。
FORMAT语句用于将FORMAT规范附加到一个或多个变量。在你的声明中:
FORMAT IQ IQ. ;
变量列表只是单个变量IQ,要应用的格式是IQ。,它将使用IQ格式定义的默认宽度,因为没有列出宽度。
查看代码中是否有任何对PROC FORMAT
的引用。尽管SAS提供了大量现成的格式和INFORMATS,但通常需要创建格式为特定目的而设计的
它们可以通过PROC FORMAT
创建,可以用于:
- 将数值变量转换为字符值
- 将字符串转换为数字
- 将字符串转换为其他字符串
在您的示例中,是用户定义的格式IQ。将数字变量iq
转换为字符值。
data have;
input iq iq_fmt;
format iq_fmt iq.;
cards;
80 80
100 100
110 110
130 130
150 150
;
iq iq_fmt
80 75 <= IQ score < 85
100 95 <= IQ score < 105
110 105 <= IQ score < 115
130 125 <= IQ score < 135
150 145 <= IQ score < 155
使用PROC FORMAT
的VALUE
语句创建简单格式。它包括要创建的格式的名称和配对值的映射(在=号的左边)以及这些值将被映射到什么(在=号的右边)。例如,如果值在75和85之间(不包括),结果值将是75 <= IQ score < 85
iq
和iq_fmt
是相同的列。我运用智商。格式为iq_fmt
列。您可以看到,对于第一个观测,iq的值是80
,因此映射到iq_fmt
列中的75 <= IQ score < 85
。
创建和使用用户定义格式提供更多详细信息