一个点做什么,当它出现在PROC FREQ在sas格式行上的变量之后?

  • 本文关键字:格式 sas PROC FREQ 之后 变量 一个 sas
  • 更新时间 :
  • 英文 :


我想知道在这段代码中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 FORMATVALUE语句创建简单格式。它包括要创建的格式的名称和配对值的映射(在=号的左边)以及这些值将被映射到什么(在=号的右边)。例如,如果值在75和85之间(不包括),结果值将是75 <= IQ score < 85

在上面的示例中,iqiq_fmt是相同的列。我运用智商。格式为iq_fmt列。您可以看到,对于第一个观测,iq的值是80,因此映射到iq_fmt列中的75 <= IQ score < 85

创建和使用用户定义格式提供更多详细信息

最新更新