Прицепные заготовки SAS - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь очистить некоторые данные.Под переменной «Уровень образования» у меня есть несколько наблюдений, имеющих отношение к получению степени магистра.Например."Мастера" "Степень магистра" "Степень магистра".Я организовал их в одно значение: «Степень магистра» с использованием утверждений 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 ]

3 голосов
/ 23 апреля 2019

Это не может быть проблемой, потому что "степень магистра" такая же, как "степень магистра"

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 будет добавлять конечные пробелы, когда вы вводите строку в переменную, которая короче этой переменной.

Тем не менее, вы сказали, что "Магистерская степень" отличается от "Магистерской"

2 голосов
/ 23 апреля 2019

Если вы хотите преобразовать все, что начинается с «Master», то используйте оператор : после =, который работает как подстановочный знак.

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

...