我有一组数据集,其中某些变量被定义为长度 > 2000 个字符。我想要做的是创建一个标识这些变量的宏,然后创建一组新变量来保存这些值。
在基本代码中执行此操作将类似于:
data new_dset;
set old_dset:
length colnam1 colnam2 colnam3 2000.;
colnam1 = substr(long_column,1,2000);
colnam2 = substr(long_column,2001,2000);
run;
我可以将变量名称和长度列表构建为一组宏变量,但我不知道如何从宏变量中创建新变量。
我在想它会是什么样子:
%macro split;
data new_dset;
set old_dset;
%do i = 1%to &num_cols;
if &&collen&i > 2000 then do;
&&colnam&i 1 = substr(&&colnam&i,1,2000);
end;
%en;
run;
%mend;
我知道那行不通,但这就是我的想法。
如果有人可以帮助他们弄清楚我该怎么做,我将不胜感激。
谢谢
布莱恩