очистка sas с использованием операторов if then

#sas

#САС

Вопрос:

Я пытаюсь очистить свои данные для языка, но когда я печатаю, они не очищаются. Я поместил это в свое заявление о наборе

вот мой код:

 if lang in ("spanish, Engglishish, ssanklish, England) then lang="English"; run;  

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

Если вы хотите сопоставить только одну строку, вы можете использовать оператор равенства вместо оператора IN.

 if lang = "Engglish, Engglishish, Engl, England, English, Englishh, Englisj, Englsh, En, Inglish, Old, NewEnglish, Oldenglish, Onglish, english"   then lang="English" ;  

Если вы хотите сопоставить любую из подстрок в своем списке, сделайте каждую из них своим собственным строковым литералом. Обратите внимание, что оператор IN в SAS так же доволен пробелами, как и запятыми между элементами.

 if lang in ("Engglish" "Engglishish" "Engl" "England" "Englishh" "Englisj" "Englsh"   "En" "Inglish" "Old" "NewEnglish" "Oldenglish" "Onglish" "english")   then lang="English" ;  

Убедитесь, что это используется на действительном этапе обработки данных.

 data want;  set have;  if lang in ("Engglish" "Engglishish" "Engl" "England" "Englishh" "Englisj" "Englsh"   "En" "Inglish" "Old" "NewEnglish" "Oldenglish" "Onglish" "english")   then lang="English"  ; run;  

Вы действительно хотите поменять Старый на английский?