SAS 变量

17 Mar 2025 | 6 分钟阅读

类型 | 属性 | 在 SAS 中创建变量

在之前的几个主题中,我们学习了数据集的各种操作。现在,在本主题中,我们将学习 SAS 变量 及其 创建、各种 类型属性

什么是变量?

在 SAS 中,变量是用户为数据集的列指定的名称。

SAS 中变量的目的是将观测值归类于特定的特征,如姓名、出生日期、身高、体重等。

变量名可以根据它所要表示的特征来给定。在命名变量时,必须遵循 SAS 基本语法 文章中的一些规则。

SAS 变量的类型

SAS 变量有两种类型

  1. 数字
  2. Character

SAS 数值变量

数值变量存储数值,即数字。此变量用于执行算术运算,如加法、减法、乘法、除法和所有其他类型的计算。此外,数值变量还用于存储日期和时间。

数值变量的缺失值用句点 (.) 表示。

语法

示例

SAS 字符变量

字符变量用于存储文本。此变量也称为字符串变量。这些变量通过在变量名末尾放置美元符号 ($) 来定义。它们可以包含特殊字符(如 &、%、()、$)、字母甚至数字。

文本变量的缺失值用空白 ("") 表示。

语法

示例

创建 SAS 变量

如上所述,我们可以根据特征创建变量,所以首先考虑特征,然后根据特征给变量命名。

创建 SAS 变量有两种方法

  • 在新数据集中创建新变量
  • 将变量添加到现有数据集

在新数据集中创建新变量

假设我们正在创建一个名为 mensuration 的新数据集,该数据集有两个特征,即长度和宽度。

以下示例说明了我们如何创建它

上面的代码将创建一个数据集,其中变量 length 和 breadth 作为列。它还将显示五个观测值。让我们在 SAS Studio 中执行此代码。

SAS Variable

输出

SAS Variable

从输出中我们可以看到,有两个变量 length 和 breadth 生成了带有五个观测值的列。

将变量添加到现有数据集

现在,如果我们需要将一个基于长度和宽度的变量添加到现有数据集 mensuration 中,我们可以通过以下方式添加它

首先,指定新变量的名称,然后将等号 (=) 与其依赖的参数一起放置。

area=length*breadth(这是面积的数学公式)

我们可以使用 SAS 计算一个名为“area”的派生变量,该变量基于另外两个变量,即长度和宽度。现在,让我们看看我们如何做到这一点

在 SAS Studio 中执行上述代码

SAS Variable

输出

SAS Variable

从输出中我们可以看到,数据集“mensuration”已添加并计算了新变量 area。现在,它有三个变量,即长度、宽度和面积。

注意:始终在 input 语句和 datalines 语句之间创建新变量。

变量属性

SAS 变量有四个重要的属性:名称、长度、格式和标签。

  • 名称
  • 长度
  • 格式
  • 标签

属性帮助我们识别变量并定义它们的使用方式。

名称

SAS 变量遵循一些命名约定,如下所示

  • 变量名不得超过 32 个字符。
  • 变量名不应以数字开头,我们可以用字母 (a-z) 或 (A-Z) 或下划线 (_) 开头。我们可以在第一个字符后使用数字。
  • 两个单词之间不应存在空格。例如,变量名不能是“Last Name”,因为空格将不会被识别。取而代之的是,我们可以使用“LastName”或“last_name”。

注意:避免为变量命名一组很大的名称。 还要尽量避免使用常见的名称,如 a1、a2,因为它没有提供具体信息,并且可能会造成混淆。

SAS 变量长度

SAS 变量“length”对应于变量存储的字节数。字符变量和数值变量的字节数默认值为 8。

SAS 变量格式

变量的格式指示 SAS 如何打印输出。 格式非常重要,因为它可以帮助读者理解输出数据。

十进制位和日期的 SAS 格式包括以下格式

  • 数值变量的十进制数格式为 1 或 1.00。
  • 日期变量的日期格式为 2013MAY16 或 05/16/2013 或 2013-05-16。

SAS 变量标签

如果我们想提供有关变量的附加信息,可以使用 LABEL。 例如,考虑一个员工数据,我们以变量 DOBDOJ 分别获取员工的 出生日期入职日期。 现在,我们想提供有关这些变量的更多信息,因为它们由于日期相似而产生了错觉。 为了克服这种混淆,我们可以使用标签。

语法

让我们通过一个例子来理解 LABEL 如何工作

PROC CONTENTS 显示了标签实际上是如何分配的。

在 SAS Studio 中执行上述代码

SAS Variable

输出

SAS Variable

从输出中我们可以看到,所有变量都已根据说明进行了标记。

LABEL 可以在数据步骤或 PROC 步骤中使用。

在上面的代码中,LABEL 在数据步骤中使用,当 LABEL 在数据步骤中使用时,它将成为数据集的永久部分。 上面代码的输出显示了所有变量的标签,并且这些标签是数据集的永久部分。

当标签在 PROC 步骤中使用时,它将成为数据集的临时部分。这意味着我们可以将变量名标记为另一种形式以供临时使用。例如,DOB ="Date of Birth" 或 DOJ ="Date of Joining."

带标签的变量 DOB 将显示为变量 Date of BirthDOJ 将显示为 Date of Joining 在输出中。

让我们在示例中看看

在 SAS Studio 中执行上述代码

SAS Variable

输出

SAS Variable

在上面的代码中,我们在 PROC PRINT 过程(或 proc 步骤)中使用了 LABEL。在输出中,变量 DOBDOJ 以带标签的形式显示,即 Date of BirthDate of Joining。要记住的事实是,我们只能在 proc 步骤中使用 LABEL 语句以显示打印过程,它不能更改数据集中变量的标签。

结论是,如果要永久更改标签,请在数据步骤中使用标签,如果需要临时更改,请在 PROC 步骤中使用它。


下一个主题SAS 字符串