是否可以在SAS中堆叠具有不同变量的数据集?

时间:2015-03-09 18:40:57

标签: sas

假设我有2个数据集

dataset1 = 
          123456789
          222222222
          444444444

dataset2 = 
          123456  8888   account1_description
          456789  7777   account2_description

我正在尝试获得与以下示例类似的输出 堆叠2个数据集并将字符串作为

之间的指标
[HEADER_2015-01-01]          <----inserted as a line of characters (string)
[ID]                         <----inserted as a line of characters (string)
123456789
222222222
444444444
[ACCOUNT]                    <----inserted as a line of characters (string)
123456     8888   account1_description
456789     7777   account2_description
[DETAIL]                     <----inserted as a line of characters (string)

我最初的想法是通过创建不同的数据集,然后将它们附加/堆叠在一起。
例如:
dataset1(char)= [HEADER_2015-01-01]
dataset2(char)= [ID]
dataset3(number)=
123456789
  222222222
444444444
dataset4(char)= [ACCOUNT]
dataset5 = ...
等。

但显然这是错误的,因为第一列(变量)具有不同的数据格式。有人可以提出一种方法来实现这种输出吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

SAS数据集与SQL表大致相似。它们不是excel文件。因此,不可能完全按照您的要求进行操作(在不同的行上有不同的变量)。

你可以让每一行只是一个文本字符串,在这种情况下,它可以有你想要的任何值。或者你可以有不同的变量,堆叠它们,并且可以确保不同的列不对齐;它会堆叠很好,它只是不会对齐未对齐的列。

您可以使用SQL来UNION它们并强制列堆叠,但它们必须是相同的数据类型。

无论如何,这不是你应该在SAS中做的事情,无论如何。正确的方法是将标题转换为对于该标题下应该存在的每一行具有相同值的变量,然后您可以使用类似的结构proc report将其退出。