我在SAS中有一个数字变量,我很难提取它的最后一位数字。我尝试使用substr
,但它只处理char
个变量。我有时变量有3或4位数。
实施例
1234
237
754
9000
在这些情况下,我需要提取
34
37
54
00
并将它们存储为新的数字变量。我在proc sql
语句中尝试了下面的代码,但它返回并出错。有人能帮助我吗?
Var2 = input(substr(put(var1), 1, length(put(var1))-1), 8.)
答案 0 :(得分:5)
SUBSTRN()
适用于数字变量,但在这种情况下它不能很好地工作,因为没有简单的方法来指定最后两个字符。 MOD()
函数在这种情况下效果很好,因为你基本上找到了100的余数。因为它看起来像你想要的字符,你需要使用PUT()将它转换为也是一个字符,Z2格式保持0和前导零。
want = put(mod(value, 100), z2.);
答案 1 :(得分:0)
另一种方法是使用prxchange,如下所示
do{
kategoriak.forEach(elem => {
elem.child.forEach(child => {
kategoriak.forEach(ell => {
if(child === ell.id && elem.szint !== 0){
ell.szint = elem.szint + 1
}
})
})
})
} while(
() => {
kategoriak.forEach(elem => {
if(elem.szint === 0){
return true
}
})
return false
}
)
答案 2 :(得分:0)
您也可以使用reverse和substr函数,如下所示,然后使用z2。格式。
input(reverse(substr(reverse(strip(put(var1,best.))), 1,2)), 8.);