SAS IF THEN Заявление о диапазоне столбцов - PullRequest
0 голосов
/ 07 марта 2019

Я хочу создать новый столбец на основе диапазона столбцов (GAP1-GAP5). Я хотел использовать что-то вроде этого:

IF FIND(GAP1-GAP5,'New Start') THEN FILTER_NewStart=1

но получил ошибку, поэтому пришлось использовать это:

IF FIND(GAP1,'New Start') OR FIND(GAP2,'New Start') OR FIND(GAP3,'New Start') 
  OR FIND(GAP4,'New Start') OR FIND(GAP5,'New Start') THEN FILTER_NewStart=1;

Нужно ли использовать цикл или можно использовать функцию для диапазона столбцов, чтобы добиться этого?

Ответы [ 3 ]

0 голосов
/ 08 марта 2019

Звучит так, будто вы хотите использовать функцию WHICHC (), чтобы найти первую переменную в списке переменных, равную определенному значению.Если его нет, то результат равен нулю.

FILTER_NewStart=0 ne whichc('New Start',of GAP1-GAP5);

FIND () предназначен для нахождения конкретной подстроки в более длинной строке и поэтому не может работать со многими переменными одновременно.

0 голосов
/ 08 марта 2019

@ Tom whichc () - хорошая идея, тогда как она не работает, если GAP1-GAP5 просто содержит, но не равен 'New Start'.find () был бы лучшим ответом в этой ситуации.

0 голосов
/ 07 марта 2019

Попробуйте объединить их и использовать find вместо переменной.

if(find(cat(of GAP1-GAP5), 'New Start') ) then FILTER_NewStart = 1;
...