在SAS中,我可以使用什么代码来创建新变量B,该变量仅在特定条件下包含变量A的前三个字符?

在SAS中,我可以使用什么代码来创建新变量B,该变量仅在特定条件下包含变量A的前三个字符?,sas,Sas,以下是变量a的数据点示例:P8760、B97097、P32417、082709、7290 我想创建变量B,它只包含变量A的前三个字符。我使用以下代码: /******Create new variable B ******/ data want; set have; Length B $3; B = A; run; 但是,我只想创建变量B,其中变量A的第一个字符等于字母p。因此,最后的变量B将只包含数据点:P87和P32 在SAS中如何在这种情况下创建变量B 您可以使用中

以下是变量a的数据点示例:
P8760、B97097、P32417、082709、7290

我想创建变量B,它只包含变量A的前三个字符。我使用以下代码:

/******Create new variable B ******/

data want;
  set have;
 Length
  B $3; 
  B = A; 
run; 
但是,我只想创建变量B,其中变量A的第一个字符等于字母p。因此,最后的变量B将只包含数据点:P87和P32


在SAS中如何在这种情况下创建变量B

您可以使用
中的
LIKE
运算符来执行此操作,其中
语句:

data want;
   set have;
   where A LIKE 'P%'; /*%-Wildcard Character*/
   B=substr(A,1,3);
run;
或者使用
regex

data want;
   set have;
   if prxmatch("/P.*/",A) then do;
      B=substr(A,1,3);
      output;
   end;
run;
变量不包含“数据点”。该变量在数据集的每个观察值上都有一个值。您的意思是数据集只包含这些观察结果吗?或者你的意思是你只是想让变量B在其他观测中丢失?