【发布时间】:2017-12-25 05:50:47
【问题描述】:
我正在处理一些字符串变量,并且某些单元格正在返回带有子字符串和长度函数的意外值。这些单元格包含字符格式的日期,因为我需要在将它们转换为 SAS 日期之前进行一些操作,因为它们来自 Excel 文件的性质。这是一个例子:
有:
观察_orig
1 4/3
2 12 月 16 日
3 1/13
4 6/2
5 3/10
6 5/4
7 月 10 日 14 日
想要:
观测值 _orig _length _sub_1_2
1 4/3 3 4/
2 12/16 5 12
3 1/13 4 1/
4 6/2 3 6/
5 3/10 4 3/
6 5/4 3 5/
7 10 月 14 日 5 10
我正在使用此代码:
data want;
set have;
_strip=strip(_orig);
_sub_1_2=substr(_strip,1,2);
_length=length(_strip);
run;
这就是我得到的。差异以粗体显示。
观测值 _orig _length _sub_1_2
1 4/3 5
2 12/16 5 12
3 1/13 4 1/
4 6/2 3 6/
5 3/10 4 3/
6 5/4 5
7 10 月 14 日 5 10
这两种情况都是 SAS 在长度应该 = 3 时计算长度 = 5。在这两种情况下,子字符串派生变量的值都是空白的。如果我在代码中使用 compress()、trim() 或 trimn() 而不是 strip(),结果是一样的。感谢您提供的任何帮助
【问题讨论】:
标签: string date sas substring string-length