下午好。
我有一个SAS数据集。从Q12000到Q42014,这是一系列标有其季度的现金流量。这些是列。观察结果为数月(经验丰富)。
现在,在可视化数据集时(使用PROC PRINT或导出到Excel),列按时间顺序排列。
我想随机化列组织的顺序,最终导出到Excel以便后续在第三个程序中使用。
有什么想法吗?
答案 0 :(得分:1)
基本方法是最终在宏变量中构造一个retain
列表,可以这样使用:
data in_random_order;
retain &random_order.;
set in_fixed_order;
run;
解决该问题的方法是从sql表dictionary.columns
或sas表sashelp.vcolumn
开始,按memname=[datasetname, in all caps] and libname=[libname, in all caps]
过滤以及按时间顺序列定义对于您不想随机化的ID /其他列,然后使用您喜欢的任何方法随机化该数据集的顺序(通常,只需向其添加随机数,然后按随机数对该数据集进行排序)。
然后,使用proc sql select into
方法,或call execute
,或者您喜欢的任何其他方法来构造retain语句 - 我喜欢选择:
proc sql;
select name
into :random_order separated by ' '
from random_order_dataset
order by random_number
;
quit;