sas - 转换为 date5。SAS 格式
问题描述
我有一列包含月份和日期的混合值(其字符为 $5 格式)。
date
7/23
5/23
23MAR
7/19
我希望数据以统一的 date5 形式出现。像这样的格式
date
23MAR
23MAY
23MAR
19JUL.
这是我正在使用的代码
data DAte_check4again;
set Date_2test;
format check_dt date5.;
check_dt=datepart(date);
run;
解决方案
SAS 将 DATE、TIME 和 DATETIME 值存储为数字。您尝试使用的 DATEPART() 函数用于将 DATETIME 值转换为 DATE 值。但是您的源变量是长度为 5 的字符。(格式只是有关如何显示值的说明)。
因此,您的第一个问题是将字符串转换为 DATE 值。然后,您可以获取 DATE 的前 5 个字符。格式化并将其存储到您的原始变量或其他变量中。假设月/日值是针对当前年份的,并且您只有这两种样式的字符串,这是生成日期和 5 个字符串的一种方法。
data want;
set have ;
if index(date,'/') then date_ck = input(cats(date,'/',year(today())),mmmddyy10.);
else date_ck = input(cats(date,year(today())),date9.);
format date_ck date9.;
new_date = substr(put(date_ck,date9.),1,5);
run;
推荐阅读
- javascript - 如何在不重定向的情况下获取 PHP 脚本?
- sql - 一列中的 Google BigQuery 聚合解决了另一列?
- python - 无法从气流中获取模块“__main__”上的属性“ClassName”
- swift - SecKeyGeneratePair 给出错误-4(功能或操作未实现)
- gem5 - Gem5 SE 模拟中的“试图读取未映射的地址”错误
- javascript - 意大利财政代码的正则表达式,带有大写字母
- python-3.x - python不会从子目录中读取第一个和最后一个文件(有时是最后一个文件,总是第一个文件)
- python - 将自定义参数传递给棉花糖模式和预处理方法
- python - 在格式说明符中使用 [0][width] 的示例
- sql-server - 从 blob 存储中选择最新的 .bak 以自动还原到 SQL Server 2016