由买买提看人间百态

topics

全部话题 - 话题: terid
(共0页)
s******8
发帖数: 102
1
来自主题: Statistics版 - SAS 的问题... 多谢高手解答
data youwant;
set yourdata end=last;
if length(strip(put(terid,best32.))) gt length(strip(put(lag(terid),32.)))
then do;
curentterid=terid;
curentparentid=parentid;
curentdesc=desc;
ln=length(strip(put(lag(terid),32.)));
call missing(terid,parentid,desc);
do j= 1 to ln;
terid=sum(terid,9*10**(j-1));
end;
if ln gt 2 then parentid=terid-9*10**(ln-2)-9*10**(ln-1);
output;
terid=curentterid;
parentid=curentparentid;
desc=curentdesc;
output;
end;
else output;
if last then do;
ln=length(strip(put(teri... 阅读全帖
c*****i
发帖数: 1392
2
来自主题: Statistics版 - SAS 的问题... 多谢高手解答
如果你只是想没有任何规律地manually加入一个record到任何你想加的位置,可用
output。
data roster;
set roster;
output;
if TerID=2 then do;
TerID=9;
output;
end;
else if TerID=203 then do;
TerID=999;
ParentID=9;
output;
end;
else if TerID=20342 then do;
TerID=99999;
ParentID=999;
output;
end;
run;
c*****i
发帖数: 1392
3
来自主题: Statistics版 - SAS 的问题... 多谢高手解答
proc sql;
insert into Roster(TerID,ParentID)
values (9,.)
values (999,9)
values (99999,999);
quit;
proc sort Roster;
by TerID;
run;
c*****i
发帖数: 1392
4
来自主题: Statistics版 - SAS 的问题... 多谢高手解答
那么,你先更清楚地解释一下放9,999,99999的位置rule是什么吧。我以为9放在1位
数TerID中最后一个record后面,999放在3位数TerID中最后一个record后面,......。
s*********h
发帖数: 6288
5
来自主题: Statistics版 - SAS 的问题... 多谢高手解答
select (TerID);
when (9) ParentID = xxxx;
when (999) ParentID = xxxxx;
....
otherwise;
试试看?
k*z
发帖数: 4704
6
来自主题: Statistics版 - SAS 的问题... 多谢高手解答
楼上的code复杂了。没有那么复杂的Logic。
楼主就是要插入分割行。直接插入 就可以然后sort.
parent_id + index = terid
(共0页)