SAS字符串用法详细图解

本文概述

  • 声明字符串变量
  • 一个数据集中可以声明多少个字符串变量?
  • 各种字符串函数
在上一主题中, 我们了解了SAS变量。现在, 在本主题中, 我们将学习SAS String及其各种操作。
SAS中的字符串是用一对单引号引起来的值。在SAS中, 通过在变量声明的末尾添加一个空格和$符号来声明字符串变量。有许多强大的功能可以分析和处理SAS中的字符串。
声明字符串变量 我们可以声明字符串变量及其值, 如下例所示。在代码中, 我们声明了一个名为String1的字符串变量。
例:
DATA string_example; String1 = 'Hello'; RUN; PROC print data = http://www.srcmini.com/string_example; RUN;

在SAS Studio中执行以上代码:
SAS字符串用法详细图解

文章图片
输出
SAS字符串用法详细图解

文章图片
从输出中可以看到, ” Hello” 已存储在字符串变量String1中。
一个数据集中可以声明多少个字符串变量? 我们可以在一个数据集中声明多个字符串变量。让我们看下面的例子:
data string_examples; String1 = 'Ankit'; String2 = 'Namrita'; String3 = 'Preeti'; String4 = 'Vishal'; String4= 'Akanksha'; run; proc print data = http://www.srcmini.com/string_examples ; run;

在SAS Studio中执行以上代码:
SAS字符串用法详细图解

文章图片
输出
SAS字符串用法详细图解

文章图片
正如你在输出中看到的那样, 所有值都存储在字符串变量中, 即String1, String2, String3, String4和String5。
我们可以保持字符串变量的长度吗?
我们可以通过使用length关键字来保持存储容量或字符数或字符串变量的长度。固定长度后, SAS将不会存储超过固定长度的字符。让我们看下面的例子:
DATA string_examples; LENGTH string1 $ 6 String2 $ 5 String3 $ 4 String4 $ 6 String5 $ 2; String1 = 'Ankit'; String2 = 'Namrita'; String3 = 'Preeti'; String4 = 'Vishal'; String5 = 'Akanksha'; run; proc print data = http://www.srcmini.com/string_examples noobs; run;

在SAS Studio中执行以上代码:
SAS字符串用法详细图解

文章图片
输出
SAS字符串用法详细图解

文章图片
如你在输出中看到的, 所有值都对应一个固定的长度。超过固定长度的字符已被删除。
我们可以连接多个字符串变量吗?
我们可以使用Joined_strings语句来连接多个字符串变量。让我们看下面的例子:
DATA string_examples; String1 = 'Hello'; String2 = 'Namrita'; String3 = 'How'; String4 = 'are'; String5 = 'you'; Joined_strings = String1 ||String2 ||String3 ||String4 ||String5 ; run; proc print data = http://www.srcmini.com/string_examples noobs; run;

在SAS Studio中执行以上代码:
SAS字符串用法详细图解

文章图片
输出
SAS字符串用法详细图解

文章图片
如你在输出中看到的, 所有字符串都已连接在一起。
各种字符串函数 以下是执行字符串操作的常用语句。
SUBSTRING功能
SUBSTRN语句用于通过使用开始和结束位置来提取子字符串。
句法:
SUBSTRN ('string value' , p1, p2)

其中
  • SUBSTRN:这是用于从字符串中提取字符的语句。
  • 字符串值:它是字符串变量的值。
  • p1:它是提取的开始位置。
  • p2是提取的结束位置。
提取有两种情况:
第一种情况:当我们同时提供两个位置时, 即开始位置和结束位置。
SAS使用开始位置元素开始提取, 使用结束位置元素识别要提取的元素总数。让我们通过一个例子来理解:
例:
data string_examples; LENGTH string1 $ 7 ; String1 = 'ABCDEFG'; sub_string1 = substrn(String1, 1, 4) ; /*Extract from position 1, and end when completes total 4 elements */run; proc print data = http://www.srcmini.com/string_examples noobs; run;

在SAS Studio中执行以上代码:
SAS字符串用法详细图解

文章图片
输出
SAS字符串用法详细图解

文章图片
正如你在输出中看到的那样, 提取从位置1(即A)开始, 并在总共提取了4个元素(即ABCD)时结束。
第二种情况:如果我们仅提供一个职位, 即开始职位。
在仅提供开始位置而不提供结束位置的情况下, 它将提取字符串末尾的所有字符。让我们通过一个例子来理解:
data string_examples; LENGTH string1 $ 7 ; String1 = 'ABCDEFG'; sub_string1 = substrn(String1, 4) ; /*Extract from position 4 onwards */run; proc print data = http://www.srcmini.com/string_examples noobs; run;

在SAS Studio中执行以上代码:
SAS字符串用法详细图解

文章图片
输出
SAS字符串用法详细图解

文章图片
从输出中可以看到, 提取从位置4(即D)开始, 并且在所有剩余元素(即DEFG)的提取完成时结束。
修剪
TRIMN语句用于从字符串中删除尾随空格。
句法:
TRIM('string value');

其中
  • TRIM:这是用于修剪字符串中空格的语句。
  • 字符串值:它是需要修剪的字符串变量的值。
让我们通过一个例子来理解:
data string_examples; LENGTH string1 $ 6; String1='ABCD'; length_string1 = lengthc(String1); length_trimmed_string = lengthc(TRIM(String1)); run; proc print data = http://www.srcmini.com/string_examples noobs; run;

当我们在SAS Studio中运行上述代码时, 我们将获得显示TRIM函数结果的输出。
SAS字符串用法详细图解

文章图片
输出
SAS字符串用法详细图解

文章图片
【SAS字符串用法详细图解】从输出中可以看到, 字符串的长度已从6修剪为4。

    推荐阅读