【问题标题】:Concatenate date with character variable ,SAS将日期与字符变量 SAS 连接起来
【发布时间】:2018-03-15 23:18:10
【问题描述】:

我遇到了一个问题,我无法将日期格式的变量与字符变量连接起来。日期格式为“date9.”。发生的情况是,当连接完成时,日期变成了数字。

例子:

代理机构:RCL 日期:2008 年 3 月 24 日

结果:RCL17615

应该是:RCL24MAR2008

这是我的代码:

data work.collectionrate_new;
set work.collectionrate;
tran_id=compress(agency||date);
run;

谢谢。

【问题讨论】:

  • 使用 CATT() 来避免使用 COMPRESS()。
  • 谢谢。有什么区别?
  • CATT - 自动删除尾随空格。猫没有。有一系列 CAT_ 类型的函数可以做不同的事情,请查看文档以获取更多详细信息。 documentation.sas.com/…
  • 查看“另请参阅”部分以查看该系列中的所有不同功能。
  • 我现在看到使用 CATT() 时,我回到了数字问题。 compress() 给出日期。我想知道为什么。

标签: sas


【解决方案1】:

您只需要一个 put(date,date9.) 将您的日期格式化为字符:

代码:

data new;
format  date date9. ;
date="24MAR2008"d;
agency="RCL";
tran_id=cats(agency,put(date,date9.));
put _all_;
run;

输出:

date=24MAR2008 agency=RCL tran_id=RCL24MAR2008

【讨论】:

  • 假设她正在使用 compress() 删除多余的空格,那么 CATT 函数可能更合适。
  • 感谢您发现这一点。我已经用 CATS 更新了我的代码以删除前导和尾随空格。
  • 由于日期已经格式化为date9,那么您也可以使用vvalue 而不是put,它会返回格式化的值。 tran_id=cats(agency,vvalue(date));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 2011-05-13
  • 1970-01-01
  • 2015-12-13
  • 2020-06-20
  • 2016-01-28
  • 2016-06-26
相关资源
最近更新 更多