我正在研究一个数据集(DATA),它有一个我需要改变的格式的3个变量(Var1,Var2,Var3) . 变量采用特殊日期格式(例如OLDFMT1),我需要使用DATEPART函数将它们更改为常规SAS日期格式 .
问题是我需要使用do循环和调用DATEPART函数的数组在单个数据步骤中完成此操作 . 必须在数组中使用DIM函数,我必须在结束数据集之前删除索引变量(i) .
然后,我必须申请DATE9 . 对这些变化的变量起作用 .
我是新手做循环,这个让我头疼 . 任何帮助将不胜感激 .
2 回答
通过说你想使用
DATEPART
函数,你暗示你的三个现有变量当前存储为SAS "date-time"值 . 试试这个:请记住,SAS只有两种数据类型(数字和字符) . 当使用适当的格式时,日期,时间和日期时间只是“已知” . 在SAS:
A date 是自1960年1月1日以来的天数
A time 是午夜以来的秒数
A datetime 是自1960年1月1日以来的秒数 .
并注意
date9.
不是一个函数;这是一种格式 . 有许多不同的格式可用于变量的基础值,但值本身不会改变 . 这是SAS编程真正有用的功能之一 .如果您只希望格式化为DATE9 . 的数据,而不是必须存储为日期,则可以将前缀DT应用于任何日期格式并将其应用于日期时间值 . 所以DTDATE9 . format将以date9格式显示日期时间值 .