Merge SAS:合并时保持格式

Merge SAS:合并时保持格式,merge,sas,format,Merge,Sas,Format,我正在尝试以不同的格式合并三个数据(A1、A2、A3)。这些数据集都只是简单的一行两列数据集。但是,一旦合并它们,格式样式就会消失,并显示数据A1的格式。有人知道合并时如何保持格式吗 DATA A1; FORMAT _NUMERIC_ 7.1; RUN; DATA A2; SET A0; RUN; DATA A3; FORMAT a b PERCENT7.1; RUN; DATA A4; SET A1 A2 A3; RUN; 提前感谢。(程序数据向量)PDV是由SAS执行器执行的隐式自动

我正在尝试以不同的格式合并三个数据(A1、A2、A3)。这些数据集都只是简单的一行两列数据集。但是,一旦合并它们,格式样式就会消失,并显示数据A1的格式。有人知道合并时如何保持格式吗

DATA A1;
FORMAT _NUMERIC_ 7.1;
RUN;

DATA A2;
SET A0;
RUN;

DATA A3;
FORMAT a b PERCENT7.1;
RUN;

DATA A4; SET A1 A2 A3;
RUN;
提前感谢。

(程序数据向量)PDV是由SAS执行器执行的隐式自动编译/运行操作构建的存储程序集

PDV中的每个项目对应一个变量及其附带的元数据(类型、长度、格式、信息、标签等)

SET语句中调用的数据集中的变量将自动添加到PDV(以及变量元数据)。一旦项目位于PDV中,同一SET语句中的后续数据集将不会覆盖现有PDV项目

您的示例代码有点缺陷,因为A1没有变量,A2步骤有错误,A3正常。由于这种缺陷,A4变量将继承A3元数据


根据SET语句,假设A1有一个变量X,那么数据集A4中的X将继承A1.X元数据。

格式附加到变量,而不是观察值。因此,您不能将
7.1
PERCENT7.1
都附加到数据集A4中的变量A。一个变量只能永久附加一种格式。但请注意,它不必永久附加任何格式

当您组合具有公共变量的数据集时,SAS将根据在包含该变量的第一个组合数据集中定义变量的方式来定义变量(即设置变量的类型长度


对于其他变量属性(格式、信息、标签),它稍微复杂一些。这些将被设置为变量的第一个非空值,即使这不是第一次看到变量。变量的这些属性可以通过数据步骤中的显式赋值来覆盖。对于数值变量,您甚至可以覆盖变量的LENGTH属性,因为它仅适用于变量在输出数据集中的存储方式。

数据集中有什么
A0
?我不明白您的问题是什么,也不明白您的示例试图说明什么。A1数据集没有变量。格式附加到变量而不是观察值。对格式/信息赋值的解释过于简单。SAS将选择第一个非空格式,即使它不是来自包含变量的第一个数据集。当然是。“几个好人”这句令人难忘的话滑稽地进入了我的头盖骨,因为Yek,“你不能处理真相”(还没有)