全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1633 6
2019-07-12
悬赏 10 个论坛币 未解决
复制代码
先根据字符变量x中取值的顺序,得到新的变量y,按照顺序分别为1 2 3。
x  y
a  1
b  2
a  1
c  3
b  2
c  3
c  3
    .

不要用if x="a" then y=1;  根据顺序判断。谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-7-13 10:55:19
用first判断是否是新数据,再加一个自增数值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-7-14 10:30:51
data aaa;
input x$;
cards;
a
b
a
c
b
c
c
.
;
run;
data aaa;
set aaa;
id=_n_;
run;
proc sort data=aaa out=aaasort;
by x;
run;
data aaasort;
set aaasort;
by x;
if missing(x) then y=.;
else if not missing(x) then  if first.x=1 then y+1;
output;
run;
proc sort data=aaasort out=aaa;
by id;
run;
data aaa;
set aaa;
drop id;
run;



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-7-24 22:57:31
复制代码

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-12-24 13:16:33
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-2-20 23:55:28
data aaa;
input x$;
cards;
a
b
a
c
b
c
c
.
;
run;

data dataset1;
      set aaa;
          if x ne '' then rank='1';
          else rank='2';  
run;


proc sql;
      create table dataset2 as
          select distinct *
          from dataset1
      order by rank;
quit;


data dataset3;
      set dataset2;
      y=_n_;
          if x='' then y=.;
          drop rank;
run;
          
data dataset4;
      set aaa;
      rank=_n_;
run;

proc sql;
      create table dataset5 as
          select a.x,b.y
          from dataset4 as a left join dataset3 as b
          on a.x=b.x
      order by rank;
quit;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群