我有一个SAS宏字符串定义为:
%let datasets =
lib.d1
lib.d2
lib.d3
;
字符串是一个宏变量。每个元素都是具有库名称的数据集。元素由换行符分隔。现在我想拆分元素并逐个迭代它们。我想使用%scan进行此操作,但我不知道如何设置%scan,因此它可以使用换行符的分隔符而不是默认分隔符列表中的点字符。有什么建议吗?
答案 0 :(得分:1)
如果您不想使用默认分隔符,则需要告诉%SCAN()
要使用的分隔符。在这种情况下,您想要使用空格。请注意,不会有任何"换行符"在你的宏变量中,如果你这样创建它。
%put %scan(&datasets,1,%str( ));
答案 1 :(得分:0)
虽然它们在代码中以换行符分隔,但它们仍被视为空格。
%LET DATASETS = lib.d1 lib.d2 lib.d3 ; %MACRO SPLIT(STRING) ; %DO I = 1 %TO %SYSFUNC(countw(&STRING,%STR( ))) ; %PUT %SYSFUNC(scan(&STRING,&I,%STR( ))) ; %END ; %MEND ; %SPLIT(&DATASETS) ;