gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 19:05:00 25 4
gpt4 key购买 nike

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

最佳答案

一种方法是使用dictionary.columns

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

仔细阅读表格并检查您感兴趣的属性。对于您的情况,您可能会对列“NAME” <- 由所有列的名称组成。

根据列的标识(来自哪个库/什么类型的文件/文件名),通过将 where 语句添加到 proc sql 来修改表,例如其中 upcase(libname)= "WORK"

data attribute;
array column [ n ] $ length ;
do i=1 to n;
set attribute ( keep = name) ;
column [ i ] = name ;
end;
run;

然后我将继续数据步骤。您可以使用宏变量通过 select variable into : 来存储列名称的值,但无论如何,您仍然需要对数组 n 的大小或存储的任何其他方法进行硬编码值转化为一项观察。还要记住相应地定义数组的长度和类型。您可以通过在 array 处的 length 之后添加 var1-varn 为结果数据集中的变量指定名称 Attribute陈述。

为了简单起见,我使用 set 语句读取观察值一和一,并存储列 NAME 的值,这是使用dictionary.columns 时派生的官方列名称数组

请注意,创建非临时数组会创建变量。

如果要添加空白,请添加,

  data younameit ;
merge attribute attribute(firstobs=2 keep=name rename=(name=_name));
output;
if name ne _name then do;
call missing(of _all_);
output;
end;
run;

由于两个数据集以不同的观察开始,并且列名称在一个数据集中不重复,因此有效观察的下一行(从结果数据集中的第一个 output 语句派生)将为空,因为调用缺失 ( of _all_ ) ; 输出;

关于sas - 如何将sas数据集的列标题更改为观察值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com