下午好。SAS数据集中的随机化列顺序
我有一个SAS数据集。这是一系列现金流量,从Q12000到2014年第4季度标有他们的起源部分。这些是专栏。观察结果是几个月(经验丰富)。
现在,在可视化数据集(使用PROC PRINT或导出到Excel)时,列按时间顺序排列。
我想随机化组织列的顺序,最终导出到Excel中以便在第三个程序中随后使用。
任何想法?
下午好。SAS数据集中的随机化列顺序
我有一个SAS数据集。这是一系列现金流量,从Q12000到2014年第4季度标有他们的起源部分。这些是专栏。观察结果是几个月(经验丰富)。
现在,在可视化数据集(使用PROC PRINT或导出到Excel)时,列按时间顺序排列。
我想随机化组织列的顺序,最终导出到Excel中以便在第三个程序中随后使用。
任何想法?
的基本做法是,最终构建,可以像这样使用宏变量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
,或任何其他方法,你想构建保留声明 - 我喜欢选择到:
proc sql;
select name
into :random_order separated by ' '
from random_order_dataset
order by random_number
;
quit;
出于好奇,为什么会随机列顺序有所帮助?这是否将Kaggle之类的数据匿名化? – Reeza
这将被输入到一个Excel宏中,该宏可以获取几张不同的现金流,并生成可以输入债券分析程序的输出。随机化的列将与另外两个静态集合配对,为分析创建新的假设场景。 –
SAS-> Excel宏 - >债券分析程序听起来很可怕。可以更好地使用SAS中的Excel部分。并将您的列转换为行以便于在SAS中进行管理。也就是说,乔的做法很好。也可以从PROC CONTENTS OUT =开始,作为第一步。 – Quentin