楼主: Laughing06
3988 14

关于日期型变量引用的问题! [推广有奖]

  • 4关注
  • 0粉丝

大专生

65%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
499 点
帖子
37
精华
0
在线时间
51 小时
注册时间
2013-3-13
最后登录
2016-5-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求:关于引用日期变量,并维持其日期格式不变的办法!!!小弟先谢过了!
数据集a1:
date
12Dec2014
11Nov2013

数据集a2:
date
20141212
20131111

部分程序如下:
%do i=1 %to 2;
data new&i;
        set a&i;
        comments="The person's birthdate was" || date;
run;

%end;
生成的数据集分别如下new1为:
date     comments

20069  The person's birthdate was  20069
19673  The person's birthdate was  19673
生成的数据集分别如下new2为:
date             comments

20141212    The person's birthdate was  20141212
20131111    The person's birthdate was  20131111
当date为8位数字时,comments引用没有问题,但是当date为date9.等日期格式时,comments中只是它的数值形式,希望能够维持12Dec2014这样的形式不变,请问如何解决!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:日期型 Comments comment Person Birth person 程序

沙发
mingfeng07 学生认证  发表于 2015-1-8 19:01:30 |只看作者 |坛友微信交流群
  1. comments="The person's birthdate was" || put(date,date9.);
复制代码

使用道具

藤椅
Laughing06 发表于 2015-1-8 19:12:49 |只看作者 |坛友微信交流群
mingfeng07 发表于 2015-1-8 19:01
我之前也试过,这个方法生成new1是没问题,但是new2会出问题。我想要做成统一的code,适用这两种情况的。

使用道具

板凳
mingfeng07 学生认证  发表于 2015-1-8 19:45:27 |只看作者 |坛友微信交流群
Laughing06 发表于 2015-1-8 19:12
我之前也试过,这个方法生成new1是没问题,但是new2会出问题。我想要做成统一的code,适用这两种情况的。
你的表a2变量不是日期型的,先把它转化为日期型变量就没问题了。

使用道具

报纸
Laughing06 发表于 2015-1-8 20:03:58 |只看作者 |坛友微信交流群
mingfeng07 发表于 2015-1-8 19:45
你的表a2变量不是日期型的,先把它转化为日期型变量就没问题了。
嗯,对的。但它表示的是个日期。就是有时候这个日期变量不确定具体是哪种形式,是不是需要添加程序进行判断它的格式,然后修改成日期的格式再进行引用呢?如果是,能不能给点具体方法。多谢啦

使用道具

地板
teqel 发表于 2015-1-8 23:17:58 来自手机 |只看作者 |坛友微信交流群
用字符变量

使用道具

7
sushe1527 发表于 2015-1-8 23:40:42 |只看作者 |坛友微信交流群
teqel 发表于 2015-1-8 23:17
用字符变量
是字符
因为如果两个data确实是独立分开的 做好在合并就行了
如果是混在一起? 是已经混成的data?
那就只能是字符型了 字符型在判断,外加后续运算,生成统一code

date
12Dec2014
11Nov2013
20141212
20131111

使用道具

8
mingfeng07 学生认证  发表于 2015-1-8 23:53:46 |只看作者 |坛友微信交流群
Laughing06 发表于 2015-1-8 20:03
嗯,对的。但它表示的是个日期。就是有时候这个日期变量不确定具体是哪种形式,是不是需要添加程序进行判 ...
从你的结果来看,应该是纯数值变量,可以这么改:
  1. data a2(drop=date_new);
  2. set  a2(rename=(date=date_new));
  3. date=mdy(substr(compress(date_new),5,2),substr(compress(date_new),7,2),substr(compress(date_new),1,4));
  4. format date date9.;
  5. run;
复制代码

使用道具

9
Laughing06 发表于 2015-1-9 09:09:24 |只看作者 |坛友微信交流群
sushe1527 发表于 2015-1-8 23:40
是字符
因为如果两个data确实是独立分开的 做好在合并就行了
如果是混在一起? 是已经混成的data?
同一个数据集里date的格式是相同的,所以没有混杂的数据,不是字符型的

使用道具

10
Laughing06 发表于 2015-1-9 09:18:16 |只看作者 |坛友微信交流群
mingfeng07 发表于 2015-1-8 23:53
从你的结果来看,应该是纯数值变量,可以这么改:
办法是可以,先谢啦。但是如何引用变量date, 让他不至于产生20069这样的数字,而是用12DEC2014这样的具体日期。        比如,在这个statement中:comments="The person's birthdate was" || date;

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-10-6 13:17