全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1036 2
2013-04-12
如图,第九个变量值是10,符合条件,我怎么一块儿将第八个变量,和第十个变量一块取出来呢?
因为都是需要的,
不胜感激!!
附件列表
未命名.jpg

原图尺寸 8.11 KB

未命名.jpg

二维码

扫码加我 拉你入群

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

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

全部回复
2013-4-12 23:25:51
data aa;
  input a;
  cards;
1
2
2
7
1
23
2
1
10
23
12
11
;
run;

1111111111111111111111111111111111111
data bb;
  set aa;
  a1=lag2(a);
  a2=lag(a);
  a3=a;
  if a2=10 then output;
  drop a;
run;
proc print;run;


2222222222222222222222222222222222222
proc transpose data=aa out=cc;
run;
data dd;
  set cc;
  array ar[12] col1-col12;
  do i=1 to 12;
    if ar(i)=10 then do;
   x1=ar(i-1);
   x2=ar(i);
   x3=ar(i+1);
end;
  end;
  keep x1-x3;
run;
proc print;run;

两种方法,扩展性不强

二维码

扫码加我 拉你入群

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

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

2013-4-29 18:07:03
你的意思是把观测值为10以及他的前后各一个观测都保留下来?试试这个程序:
data aa;
  input a @@;
  cards;
10 2 3 4 5 6 7 8 90 10 10 12 10
;
run;
data bb;
set aa;
if a=10 then do;
na=_n_-1;output;
na=_n_ ;output;
na=_n_ +1;output;
end;
run;
proc sql;
create table b1 as select distinct na from bb;
quit;
data want(keep=a);
set b1;
do i=na;
set aa point=i;
if _error_=0 then output;
end;
run;
proc print;run;
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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