📅  最后修改于: 2021-01-08 14:23:45             🧑  作者: Mango
在最后几个主题中,我们学习了对数据集的各种操作。现在,在本主题中,我们将学习SAS变量及其创建,各种类型和属性。
在SAS中,变量是用户赋予数据集列的名称。
SAS中变量的目的是将观察结果归类为特定特征,例如姓名,出生日期,身高,体重等。
可以根据必须表示的特征来指定变量名。命名变量时,必须遵循SAS Basic语法文章的一些规则。
SAS变量有两种类型:
数字变量存储数字值,即数字。此变量用于执行算术计算,例如加法,减法,乘法,除法以及所有其他类型的计算。此外,此数字变量还用于存储日期和时间。
数字变量的缺失值以句点(。)显示。
句法:
INPUT var1 var2;
例:
INPUT id, salary, incentive;
字符变量用于存储文本。此变量也称为字符串变量。通过在变量名称的末尾添加美元符号($)来定义这些变量。它们可以包含特殊字符(例如&,%,(),$),字母和偶数。
文本变量的缺失值以空白(“”)显示。
句法:
INPUT var1 $ var2 $ var3 $;
例:
INPUT name $ companyname $ address $;
如上所述,我们可以在特征的基础上创建变量,因此首先要考虑特征,然后根据特征为变量命名。
有两种创建SAS变量的方法:
假设我们正在创建一个名为mensuration的新数据集,它具有两个特征,即长度和宽度。
以下示例说明了如何创建它:
Data mensuration;
input length breadth;
datalines;
65 130
70 150
67 145
72 180
62 110
;
run;
proc print dataset= mensuration;
run;
上面的代码将创建一个以长度和宽度为列的数据集。它还将显示五个观察结果。让我们在SAS Studio中执行此代码。
输出:
正如我们在输出中看到的那样,有两个带有五个观测值的变量生成长度和宽度的列。
现在,如果我们需要添加这是基于长宽高到现有的数据集测定法一个新的变量,我们可以通过以下方式添加:
首先,指定新变量的名称,然后与它所依赖的参数放等号(=)。
面积=长度*宽度(这是面积的数学公式)
我们可以使用SAS根据长度和宽度这两个其他变量来计算称为“区域”的派生变量。现在,让我们看看如何做到这一点:
Data mensuration;
input length breadth;
area=length*breadth;
datalines;
65 130
70 150
67 145
72 180
62 110
;
run;
proc print dataset=mensuration;
run;
在SAS Studio中执行以上代码:
输出:
正如我们在输出中看到的,数据集“ mensurance”已添加并计算了新的变量区域。现在,它具有三个变量,长度,宽度和面积。
注意:始终在输入语句和数据线语句之间创建新变量。
SAS变量具有四个重要属性,即名称,长度,格式和标签。
属性帮助我们识别变量并定义如何使用它们。
SAS变量遵循一些命名约定,如下所示:
注意:避免给变量提供大量名称。还应尝试避免使用通用名称,例如a1,a2,因为它不提供特定信息,并且可能会造成混淆。
SAS变量“长度”对应于变量存储的字节数。字符变量和数字变量的字节默认值为8。
变量的格式指示SAS如何打印输出。格式非常重要,因为它可以帮助读者理解输出数据。
小数位数和日期的SAS格式包括以下格式:
如果我们需要提供有关变量的其他信息,则可以使用LABEL。例如,考虑一个雇员数据,我们将雇员的出生日期和加入日期分别作为变量DOB和DOJ。现在,我们想提供有关这些变量的更多信息,因为由于Date的相似性,它们正在产生一种幻觉。为了克服这种混乱,我们可以使用标签。
句法:
LABEL variable name= "variable name";
让我们通过一个示例来了解LABEL的工作原理:
DATA Test ;
INPUT name $ DOB DOJ ;
CARDS;
Preeti 02JUL1992 15APR2017
Anita 23AUG1991 09JUL2016
Vinit 07FEB1990 10APR2015
Neha 12MAR1993 30MAY2018
Ashutosh 03DEC1992 23SEP2015
RUN;
DATA test2;
SET test;
LABEL name ="Name of Employee"
DOB ="Date of Birth"
DOJ ="Date of Joining"
;
RUN;
PROC CONTENTS DATA=test2;
RUN;
PROC CONTENTS显示标签已实际分配。
在SAS Studio中执行以上代码:
输出:
正如我们在输出中看到的,所有变量均已根据说明进行了标记。
LABEL可以在数据步骤或PROC步骤中使用。
在上面的代码中, LABEL在数据步骤中使用,而LABEL在数据步骤中使用时,它成为数据集的永久部分。上面代码的输出显示所有变量的标签,这些标签是数据集的永久部分。
在PROC步骤中使用标签时,该标签将成为数据集的临时部分。这意味着我们可以将变量名标记为其他形式以供临时使用。例如, DOB =“出生日期”或DOJ =“加入日期。”
带标签的变量DOB将在输出中显示为变量出生日期, DOJ显示为加入日期。
让我们在示例中看:
DATA test;
INPUT name $ DOB $ DOJ $;
DATALINES;
Preeti 02JUL1992 15APR2017
Anita 23AUG1991 09JUL2016
Vinit 07FEB1990 10APR2015
Neha 12MAR1993 30MAY2018
Ashutosh 03DEC1992 23SEP2015
;
RUN;
PROC PRINT DATA=test LABEL;
VAR DOB DOJ;
LABEL DOB ="Date of Birth"
DOJ ="Date of Joining"
;
RUN;
在SAS Studio中执行以上代码:
输出:
在上面的代码中,我们在PROC PRINT过程(或proc步骤)中使用了LABEL。在输出中,变量DOB和DOJ以标签形式显示,即出生日期和加入日期。要记住的事实是,我们只能在proc步骤中使用LABEL语句以将其显示在
结论是,您要永久更改标签,然后在数据步骤中使用标签,而在临时时,在PROC步骤中使用它。