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() 使用的内容。
我想对 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() 使用的内容。