SAS как оператор в шаге данных не работает - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу заменить значение в зависимости от того, содержит ли оно определенную фразу.

data have;
if col1:='Comm' then col1='Commercial';
run;

По сути, если col1 содержит слово 'Comm', то заменить всю строку на Коммерческую.Но это не замена.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

=: не является оператором like или contains.Скорее, это оператор «начинается с».В вашем случае он ищет точный префикс «Comm» при чтении строки слева направо.Вместо этого используйте index(), чтобы найти определенный набор слов или подстрок в строке.Вот несколько примеров:

data _null_;
    length word $25.;

    put 'String: Communications';
    String = 'Communications';

    if(String =: 'Comm') then put 'The string starts with "Comm"';

    put 'String: Global Communications';
    String = 'Global Communications';

    if(String =: 'Glob') then put 'The string starts with "Glob" and not "Comm"';

    if(index(String, 'Comm') ) then put 'The string contains "Comm"';

run;
0 голосов
/ 18 декабря 2018

Я думаю, что начинается с opertain =: и связано с предложением where.Используйте substr (col1,1,4).

...