我正在尝试清除一些数据。在可变的“教育水平”下,我有关于持有硕士学位的多种观察。例如。 “硕士”“硕士学位”“硕士学位”。我将它们组织为一个值:使用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;
我只是想将“硕士学位”的观察结果转换为“硕士学位”
答案 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"