尾随空白SAS

时间:2019-04-23 14:12:40

标签: sas

我正在尝试清除一些数据。在可变的“教育水平”下,我有关于持有硕士学位的多种观察。例如。 “硕士”“硕士学位”“硕士学位”。我将它们组织为一个值:使用IF-THEN语句的“硕士学位”。但是,我还有另一条带有尾随空格的条目,称为“硕士学位”,但IF-THEN语句没有使用。我该如何修剪呢?

我已经研究了一些用于处理此问题的函数,例如TRIM(),但是我真的不了解如何实现这些功能,因为我是SAS的新手。

这是我一直在整理我用于先前变量的数据和格式的方式:

data libref.name;
  set libref.name;

  if Var1 = "Masters" then Var1 = "Masters Degree";

  if Var1 = "Master's" then Var1 = "Masters Degree";

  if Var1 = "Master Degree  " then Var1 = "Masters Degree";    
run;

我只是想将“硕士学位”的观察结果转换为“硕士学位”

2 个答案:

答案 0 :(得分:3)

那不是问题,因为“硕士学位”与“硕士学位”相同

data _NULL_;
    if "Master Degree " = "Master Degree" then put "EQUAL";
    else put "DIFFERENT";
run;

将输出:

8    data _NULL_;
9        if "Master Degree " = "Master Degree" then put "EQUAL";
10       else put "DIFFERENT";
11   run;

EQUAL
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds

这是因为SAS通过比较会忽略任何尾随空白。这是因为无论何时您将SAS字符串添加到比该变量短的变量中,SAS都会在其后附加空白。

但是你说另一个是“硕士学位”,那与“硕士学位”不同

答案 1 :(得分:2)

If you want to convert everything that begins with "Master", then use the : operator after =, which works like a wildcard.

if Var1 =: "Master" then V22 = "Masters Degree"