在数据语句中添加sas数据字段

时间:2016-04-05 20:34:05

标签: sas

我之前从未在sas工作过,现在我继承了一个我修改过问题的sas代码。我有一个sas数据语句,如下所示:

data newdata;

length field1 $12.
    field2 8.
    field3 $7.
;
format field1 16.;

run;

我需要在最后添加一个数据字段,以便我可以使用

proc append base = newdata data = /*something*/

我该怎么做呢?数据字段采用此格式

ddMMMyy e.g. 02MAR15

我试过了

data newdata;

length field1 $12.
    field2 8.
    field3 $7.
    field4 date9.
;
format field1 16.;

run;

以及

data newdata;
format dob date9.;
length field1 $12.
    field2 8.
    field3 $7.
    field4 dob ddmmmyy10.
;
format field1 16.;

run;

似乎无效。我可以将字符串指定为field4的数据类型,但在追加期间它会失败。

2 个答案:

答案 0 :(得分:3)

这里的问题是lengthformat是两回事。 date9.是一种格式,而不是长度;数字变量的长度为3到8,但除此之外没什么。

如果我理解你的要求,你就会有一个包含3列的数据集,以及另一个包含四列的数据集,并希望将后者附加到前者。

如果是这样,最简单的选择是使用if 0 then set,它采用设置数据集的结构并将其复制而不复制其数据。

data have;
  length field1 $12.
    field2 8.
    field3 $7.
  ;

run;


data have2;
  length field1 $12.
    field2 8.
    field3 $7.
    field4 8.
  ;
  format field4 date9.;
run;

data have;
  if 0 then set have2;  *copies structure of have2 onto this data step PDV;
  set have;
run;

proc append base=have data=have2;
run;

虽然老实说你可以做到

data want;
  set have have2;
run;

因为你将以任何方式重新处理所有have

答案 1 :(得分:0)

为什么不使用强制选项:

<article class="preview {{size}}" ng-if="desktop">
    <a class="cover absolute" style="background-image:url(/images/samples/sample-image.jpg);">
        <div class="post-info absolute full-width padding">
            <h2 ng-if="artist" class="text-center">band name</h2>
            <h3 class="post-title section-spacer" ng-if="!artist">title of news artcle <span>2hrs</span></h3>
            <p ng-if="caption==true; !artist" class="post-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud</p>
        </div>
        <div class="post-preview-gradient"></div>
    </a>
</article>