SAS如何切片和循环遍历VARCHAR

SAS how to slice and loop through a VARCHAR

我想对 VARCHAR 进行切片和循环 这就是我的尝试:

%MACRO test;

data
     %DO i_=1 %TO 4;

          %LET extract&i_.=%SCAN(&string.,&i_.," ");
          %PUT extract&i_.=&&extract&i_.._hash;

     %END;
%MEND test;

这个工作,但问题是我必须在我的代码中输入单词数,例如这里是 4,但如果我有一个包含 5 或 6 个单词的新字符串,这不起作用。

使用 COUNTW() 函数。

%DO i_=1 %TO %sysfunc(countw(&string.," "));

PS 您真的在 &STRING 的值中使用引号和 space 作为分隔符吗?这就是您告诉 %SCAN() 使用的内容。