0

我有一个空数据集,例如

a b c d

我想插入一条空白记录作为第一条也是唯一一条记录。我尝试了每一个想法,但没有工作。

4

2 回答 2

2

当您说您有一个空数据集时,您的意思是它有 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。如果您没有set have;if 0 then部分,则该步骤将在执行 SET 语句时停止,因为 SAS 将读取文件结束标记。

于 2016-05-25T16:56:02.823 回答
1

这是一种使用数据集选项的方法。在您的源数据集上使用OBS=0以获取变量定义,OBS=1DROP=_ALL_在其他一些数据集(如 SASHELP.CLASS)上使用以获取一个观察结果,但没有其他变量。

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_;
于 2016-05-25T17:31:19.547 回答