Функция SAS COUNTW - как подсчитать слово, включая значение NULL, при использовании настраиваемого разделителя? - PullRequest
0 голосов
/ 11 апреля 2019

Попытка использовать функцию COUNTW, чтобы получить количество «слов» в строке. Но эта строка может иногда содержать значение NULL, если она разделена запятой;

Я нашел некоторый пользовательский макрос, который может это сделать, просто подумав, смогу ли я добиться того же с помощью встроенной функции, например COUNTW.

Например:

%put %wordcount('abc, , ,def,,56j,type',DLM=%str(,));

Выше приведена пользовательская функция, которая возвращает 7

%put %sysfunc(countw('abc, , ,def,,56j,type',%str(,)));

COUNTW возвращает 6, поскольку не учитывает NULL между 2 запятыми (",,")

1 Ответ

1 голос
/ 11 апреля 2019

Очень просто, просто посмотрите онлайн-документацию! COUNTW имеет необязательные модификаторы, одним из которых является M, который указывает функции включать последовательные разделители как слово, а не как ноль.

Следующий код возвращает 7, а не 6.

%put %sysfunc(countw('abc, , ,def,,56j,type',%str(,),M));
...