SAS/IML:从多个矩阵创建数据集
假设我在IML中有许多矩阵。它们可以是数字或字符。我将如何使用它们创建单个SAS数据集 我试过类似的东西SAS/IML:从多个矩阵创建数据集,sas,Sas,假设我在IML中有许多矩阵。它们可以是数字或字符。我将如何使用它们创建单个SAS数据集 我试过类似的东西 n = {1 2 3, 4 5 6}; /* 2 x 3 numeric */ c = {'a' 'b', 'c' 'd'}; /* 2 x 2 character */ dsvars = {n c}; create dat var dsvars; /* should be a 2-obs, 5-variable dataset */ append; 但这将n和c转换为列向
n = {1 2 3, 4 5 6}; /* 2 x 3 numeric */
c = {'a' 'b', 'c' 'd'}; /* 2 x 2 character */
dsvars = {n c};
create dat var dsvars; /* should be a 2-obs, 5-variable dataset */
append;
但这将n和c转换为列向量并导出它们,这不是我想要的。我是否应该单独导出n和c并将它们合并到数据步骤中?当n和c是向量时,您的方法有效。当它们是矩阵时,有几种方法可以做到这一点。我喜欢使用CREATE FROM和APPEND FROM语法,并编写数字矩阵和字符矩阵来分离数据集,以便稍后合并:
proc iml;
n = {1 2 3, 4 5 6}; /* 2 x 3 numeric */
c = {'a' 'b', 'c' 'd'}; /* 2 x 2 character */
nNames = "n1":"n3";
cNames = "c1":"c2";
create ndat from n[colname=nNames];
append from n;
create cdat from c[colname=cNames];
append from c;
quit;
data dat;
merge ndat cdat;
run;
proc print;run;
非常感谢,瑞克,非常感谢。