本文概述
- 类型属性|在SAS中创建变量
- 什么是变量?
- SAS变量的类型
- 创建SAS变量
- 可变属性
什么是变量? 在SAS中, 变量是用户赋予数据集列的名称。
SAS中变量的目的是将观察结果归类为特定特征, 例如姓名, 出生日期, 身高, 体重等。
可以根据必须表示的特征来给定变量名。命名变量时, 必须遵循SAS Basic语法文章的一些规则。
SAS变量的类型 SAS变量有两种类型:
- 数字
- 字符
数字变量存储数字值, 即数字。此变量用于执行算术计算, 例如加法, 减法, 乘法, 除法以及所有其他类型的计算。此外, 此数字变量还用于存储日期和时间。
数字变量的缺失值以句点(。)显示。
句法:
INPUT var1 var2;
例:
INPUT id, salary, incentive;
SAS字符变量
字符变量用于存储文本。此变量也称为字符串变量。通过在变量名称的末尾添加美元符号($)来定义这些变量。它们可以包含特殊字符(例如&, %, (), $), 字母, 甚至数字。
文本变量的缺失值以空白(“ ” )显示。
句法:
INPUT var1 $ var2 $ var3 $;
例:
INPUT name $ companyname $ address $;
创建SAS变量 如上所述, 我们可以在特征的基础上创建变量, 因此首先要考虑特征, 然后根据特征为变量命名。
有两种创建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变量遵循一些命名约定, 如下所示:
- 变量名称不得包含超过32个字符。
- 变量名不能以数字开头, 我们可以以字母(a-z)或(A至Z)或下划线(_)开头。我们可以在第一个字符之后使用数字。
- 两个单词之间不应存在空格或空格。例如, 变量名称不能作为” 姓氏” , 因为将不能识别空格或空格。取而代之的是, 我们可以使用” LastName” 或” last_name” 。
SAS变量” 长度” 对应于变量存储的字节数。字符变量和数字变量的字节默认值均为8。
SAS变量格式
变量的格式指示SAS如何打印输出。格式非常重要, 因为它可以帮助读者理解输出数据。
小数位数和日期的SAS格式包括以下格式:
- 数字变量的十进制格式为1或1.00。
- 日期变量的日期格式为2013MAY16或05/16/2013或2013-05-16。
如果我们需要提供有关变量的其他信息, 则可以使用LABEL。例如, 考虑一个员工数据, 我们将员工的出生日期和加入日期分别作为变量DOB和DOJ。现在, 我们想提供有关这些变量的更多信息, 因为由于Date的相似性, 它们正在产生一种幻觉。为了克服这种混乱, 我们可以使用标签。
句法:
LABEL variable name= "variable name";
让我们通过一个示例来了解LABEL的工作原理:
DATA Test ;
INPUT name $DOB DOJ ;
CARDS;
Preeti 02JUL1992 15APR2017Anita 23AUG1991 09JUL2016Vinit 07FEB1990 10APR2015Neha 12MAR1993 30MAY2018Ashutosh 03DEC1992 23SEP2015RUN;
DATAtest2;
SET test;
LABELname ="Name of Employee"DOB="Date of Birth"DOJ="Date of Joining";
RUN;
PROC CONTENTS DATA=http://www.srcmini.com/test2;
RUN;
PROC CONTENTS显示标签已实际分配。
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
正如我们在输出中看到的, 所有变量均已根据说明进行了标记。
LABEL可以在数据步骤或PROC步骤中使用。
在上面的代码中, LABEL用于数据步骤, 当LABEL用于数据步骤时, 它成为数据集的永久部分。上面代码的输出显示所有变量的标签, 这些标签是数据集的永久部分。
在PROC步骤中使用标签时, 该标签将成为数据集的临时部分。这意味着我们可以将变量名标记为其他形式以供临时使用。例如, DOB =” 出生日期” 或DOJ =” 加入日期。”
带标签的变量DOB将在输出中显示为变量” 出生日期” , 而DOJ将显示为加入日期。
在示例中看:
DATA test;
INPUT name $ DOB $ DOJ $;
DATALINES;
Preeti 02JUL1992 15APR2017Anita 23AUG1991 09JUL2016Vinit 07FEB1990 10APR2015Neha 12MAR1993 30MAY2018Ashutosh 03DEC1992 23SEP2015;
RUN;
PROC PRINT DATA=http://www.srcmini.com/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语句在打印过程中显示它, 而不能更改数据集中变量的标签。
【SAS变量使用详细图解】结论是你要永久更改标签, 然后在数据步骤中使用标签, 而在临时时, 在PROC步骤中使用它。
推荐阅读
- SAS用户界面介绍和用法详细图解
- SAS数值数据格式详细图解
- SAS字符串用法详细图解
- 什么是SAS标准偏差(详细图解)
- SAS运算符用法详细图解
- SAS程序结构详细解释
- 什么是SAS宏(宏用法详解)
- SAS函数用法详细图解
- uniapp中使用阿里巴巴图标iconfont