SAS中基于长度的丢包观测
我有一个试图创建表的数据集,但我需要过滤掉不属于这些表的观察值。我仍在学习SAS,因此我不知道如何使用条件放弃观察 基本上,我想删除ID值不是四位数(长度方面)的观察值。这可能吗SAS中基于长度的丢包观测,sas,variable-length,Sas,Variable Length,我有一个试图创建表的数据集,但我需要过滤掉不属于这些表的观察值。我仍在学习SAS,因此我不知道如何使用条件放弃观察 基本上,我想删除ID值不是四位数(长度方面)的观察值。这可能吗 先行。 < P>假设你的ID是字符,并且不考虑空白数字: 如果lengthn(id)~=4,则删除 如果您的ID是数字: where id between 1000 and 9999; 1000 假设您的ID是字符,并且不考虑空白数字: 如果lengthn(id)~=4,则删除 如果您的ID是数字: where
先行。
< P>假设你的ID是字符,并且不考虑空白数字:如果lengthn(id)~=4,则删除代码>
如果您的ID是数字:
where id between 1000 and 9999;
<代码> 1000 假设您的ID是字符,并且不考虑空白数字:
如果lengthn(id)~=4,则删除代码>
如果您的ID是数字:
where id between 1000 and 9999;
如果1000如果id
是字符:
where length(id) = 4;
如果id
是数字:
where id between 1000 and 9999;
如果id
是字符:
where length(id) = 4;
如果id
是数字:
where id between 1000 and 9999;
那很好用-不知道为什么我没有想到,谢谢!第二个可以重写,其中id介于1000和9999之间代码><代码>其中
通常比if
更有效。使用length()
函数时要小心。对于这个特定的示例,这是可以的,但是通常使用lengthn()
函数是更好的做法。区别在于length()
将返回空字符串的长度1,而模糊的lengthn()
将返回通常期望的值0。一个大的WTF会送给这样设计它的人…谢谢罗伯特,这是一个非常好的观点。我将编辑答案。这非常有效-不知道为什么我没有想到这一点,谢谢!第二个可以重写,其中id介于1000和9999之间代码><代码>其中
通常比if
更有效。使用length()
函数时要小心。对于这个特定的示例,这是可以的,但是通常使用lengthn()
函数是更好的做法。区别在于length()
将返回空字符串的长度1,而模糊的lengthn()
将返回通常期望的值0。一个大的WTF会送给这样设计它的人…谢谢罗伯特,这是一个非常好的观点。我将编辑答案。