所以我的一个变量是用数值,文本,括号等杂乱的混合编码的。我实际上只需要提取记录为12345的数值(例如,不限于特定的数字位数,我的意思是它可以是n-k-digit到n-digit),然后是||然后描述也可能包含一些数值。因此,当我应用SAS压缩函数newvar = compress(oldvar,'','a')时,newvar从oldvar中提取所有数字。因此它看起来像12345 |||(789)||等数'|'符号(控制字符表示换行符等?)虽然有所不同。
我只需要在'|'之前提取第一个数值标志。有什么帮助吗? 提前谢谢。
答案 0 :(得分:2)
使用SCAN()函数提取值。它将产生一个字符值,并且转换为数字应该很简单。
new_var = input(scan(old_var, 1, "|"), best12.);
答案 1 :(得分:0)
这应该这样做:
substr("12345||45||89||...",1,find("|","12345||45||89||...",1)-1)