如何将sas数据集的列标题更改为观察?

如何将sas数据集的列标题更改为观察?,sas,Sas,我创建了一个sas代码,它生成了许多sas数据集。现在,我想将它们全部附加到一个excel文件中。首先,我想将sas数据集的所有列标题转换为第一个观察值。然后在这些数据集之间留出空间(添加空白观察)。我们怎样才能做到这一点呢?一种方法是使用dictionary.columns proc sql; create table Attribute as select * from dictionary.columns; 通读表格并检查您感兴趣的属性。对于您的情况,您可能会对列“NAME”感兴趣,听起

我创建了一个sas代码,它生成了许多sas数据集。现在,我想将它们全部附加到一个excel文件中。首先,我想将sas数据集的所有列标题转换为第一个观察值。然后在这些数据集之间留出空间(添加空白观察)。我们怎样才能做到这一点呢?

一种方法是使用
dictionary.columns

proc sql;
create table Attribute as
select * from dictionary.columns;

通读表格并检查您感兴趣的属性。对于您的情况,您可能会对列
“NAME”
感兴趣,听起来您只是想合并数据集并将结果写入Excel文件。你真的需要额外的空行吗

libname out xlsx 'myfile.xlsx';
data out.report ;
  set ds1 ds2 ...;
run;

确保所有列均为字符(或数字,替换为数字),然后在数据步骤中使用:

array names{*} _character_;
do i=1 to dim(names);
    call label(names{i}, names{i}); 
end;
output;

你说的行名是什么意思。。它的列标题在EXCEL文件中需要什么?听起来像是要将多个数据集写入excel文件中的同一个工作表中。为什么?也许您只是想使用ODS并打印到EXCEL文件中?问题是,要为那些与上一列不匹配的列添加额外的列,为什么它们不匹配?如果它们不匹配,为什么要将它们放在同一张Excel表格中?
libname out xlsx 'myfile.xlsx';
data out.report ;
  set ds1 ds2 ...;
run;
array names{*} _character_;
do i=1 to dim(names);
    call label(names{i}, names{i}); 
end;
output;