SAS中文论坛
标题:
请教left函数的问题,谢谢
[打印本页]
作者:
shiyiming
时间:
2009-2-5 15:19
标题:
请教left函数的问题,谢谢
菜菜鸟请教高手问题~
SAS数据集中有一列是数字形式的日期,比如20090101,字段名称为date
我想截取前四位作为年份,用left函数新增一列命名为year
year=left(date,4)
SAS老是报错,应该怎么改呢?
先谢过啦^_^
作者:
shiyiming
时间:
2009-2-5 23:27
标题:
Re: 请教left函数的问题,谢谢
left 函数好像是针对字符型数据的哦~~
作者:
shiyiming
时间:
2009-2-6 08:59
标题:
Re: 请教left函数的问题,谢谢
如果是一个字符型变量,取前四位当然是用substr的字符函数。
如果是一个数字,取前四位,当然是用数学方法:
[code:3j9j9epp]
data a;
input date;
cards;
20090103
2009131
200911
;
run;
data result;
set a;
n=ceil(log10(date));/*确定是一个几位数字*/
if n>=4 then year=int(date/10**(n-4));
else put '********小于4位的数字,怎么取前四位,请告知方法*************';
run;
[/code:3j9j9epp]
作者:
shiyiming
时间:
2009-2-6 09:47
标题:
Re: 请教left函数的问题,谢谢
LEFT函数是将字符左置(对齐)的意思,SAS报错是因为你的函数调用格式错了。.
时间函数提取年份,月份,日期有专门的函数.
处理方法一般是先将日期(可能是多种形式,如09FEB22,20090222等等)读入到SAS中,然后用函数year()提取.
作者:
shiyiming
时间:
2009-2-23 16:33
标题:
Re: 请教left函数的问题,谢谢
先把数字型的导入成date型;然后用year取
作者:
shiyiming
时间:
2009-2-27 11:28
标题:
Re: 请教left函数的问题,谢谢
如果是数字直接用year函数截取就可以,如果是字符要先转换为数字或者日期格式
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2