【发布时间】:2016-05-25 16:22:05
【问题描述】:
我有一个空数据集,例如
a b c d
我想插入一条空白记录作为第一条也是唯一一条记录。我尝试了每一个想法,但没有工作。
【问题讨论】:
-
您打算如何处理包含一个空白行的空数据集?您想要一个也适用于非空数据集的解决方案吗?
标签: sas blank-line
我有一个空数据集,例如
a b c d
我想插入一条空白记录作为第一条也是唯一一条记录。我尝试了每一个想法,但没有工作。
【问题讨论】:
标签: sas blank-line
当你说你有一个空数据集时,你的意思是它有 0 条记录,比如:
data have;
a=.;
b=.;
stop;
run;
?如果是这样,那么下面将创建一个具有相同变量的 1 记录数据集,并且所有值都缺失:
data want;
if 0 then set have;
output;
stop;
run;
if 0 then set have; 语句用于将 HAVE 中的所有变量添加到程序数据向量中,以便输出到 WANT。如果您在没有if 0 then 部分的情况下执行set have;,则该步骤将在执行SET 语句时停止,因为SAS 将读取文件结尾标记。
【讨论】:
data want; set have; run; 不起作用。
output;stop; 语句。 SAS 足够聪明,可以注意到您不再读取任何新输入,并在写入第一条记录后停止。
stop 也是必不可少的。
这是一种使用数据集选项的方法。在源数据集上使用 OBS=0 获取变量定义,在其他数据集(如 SASHELP.CLASS)上使用 OBS=1 和 DROP=_ALL_ 获取一个观察结果,但没有其他变量。
data want ;
set have(obs=0) sashelp.class(obs=1 drop=_all_);
run;
如果您需要从头开始定义它,那么只需运行一个定义变量的数据步骤,但不执行其他任何操作。 SAS 会自动写入一条记录。
data want ;
length a b 8;
run;
如果您不喜欢关于未初始化变量的说明,请添加一两个 ARRAY 语句。字符变量和数值变量各一个。
array _num _numeric_;
array _char_ _character_;
【讨论】: