首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SAS数据格式

SAS数据格式
EN

Stack Overflow用户
提问于 2017-04-07 13:23:35
回答 1查看 2.1K关注 0票数 0

我有一个带有变量“开始日期”的数据集,它使用字符格式获取许多不同的值。

我使用开始日期列中的值将数据集拆分,因为我希望将date变量转换为两个具有两个不同日期值的新列:

代码语言:javascript
运行
复制
if length(Startvalue) = 6 then output  a6;
else if length(Startvalue) = 8 then output a8 ;
else if length(Startvalue) = 1 then output a1;
else output a_other;

一个值是这样写的: 090209 (DDMMYY)

我想将变量格式化为两个date9。格式和DDMMYYD10。格式如下:

代码语言:javascript
运行
复制
FORMAT  Startvalue2 date9.;
format Startvalue3 DDMMYYD10.;

我让它在一个数据步骤中使用这种方法:

代码语言:javascript
运行
复制
FORMAT  Startdato2 date9.;
format startdato3 DDMMYYD10.;
Startdato2 = INPUT(PUT(Startdato,6.),DDMMYY6.);
Startdato3 = INPUT(PUT(Startdato,6.),DDMMYY6.);

另一个值是这样写的: 15-08-17 (DD-MM-YY)我也想要这个值的两种格式,如下所示:

代码语言:javascript
运行
复制
FORMAT  Startvalue2 date9.;
format Startvalue3 DDMMYYD10.;

但在这里,我不能使用我的表达式的副本,从上面:

代码语言:javascript
运行
复制
FORMAT  Startvalue2 date9.;
format Startvalue3 DDMMYYD10.;
Startvalue2 = INPUT(PUT(Startvalue,8.),DDMMYYDw.);
Startvalue3= INPUT(PUT(Startvalue,8.),DDMMYYDw.);

你知道为什么吗?以及如何将值转换为date9。格式和DDMMYYD10格式?

亲切的问候

玛丽亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-07 13:53:48

在使用put语句时,不需要使用input语句将值转换为数字。input的目标是接受一个字符输入,并将其转换为SAS进行数学运算的数字值。我是如何一直记住它的:

  • Input:将input值中转换为数值
  • Put:输出put一个数字值作为字符值

您可以尝试的一个更简单的解决方案是使用 informat。它能够阅读下列任何信息:

  • 日期
  • 日期时间
  • DDMMYY
  • 朱利安
  • MDYAMPM
  • 马德迪
  • MMxYY
  • 莫尼
  • 时间
  • YMDDTTM
  • YYMMDD
  • YYQ
  • YYxMM
  • 月,日,年

例如:

代码语言:javascript
运行
复制
%let default_datestyle = %sysfunc(getoption(datestyle));

options datestyle=DMY;

data want;
    set have;

    Startdato2  = INPUT(Startdato, anydtdte.);
    Startvalue2 = INPUT(Startvalue, anydtdte.);

    Startdato3  = Startdato2;
    Startvalue3 = Startvalue2;

    <rest of code>;

    format Startvalue2 date9.
           Startvalue3 ddmmyyd10.
           Startdato2  date9.
           Startdato3  ddmmyyd10.
    ;
run;

options datestyle = &default_datestyle;

让informat试一试,看看它是否能够得到一切。如果没有,您可以使用一些条件逻辑来解释这些特殊情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43279312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档