楼主: 盖瑞
1107 6

[原创博文] 怎么挑 出某一行? [推广有奖]

  • 0关注
  • 0粉丝

小学生

21%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
39 点
帖子
5
精华
0
在线时间
2 小时
注册时间
2012-2-19
最后登录
2012-3-10

楼主
盖瑞 发表于 2012-3-2 15:46:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
新手求教:
例如,我要挑出NA的所有行,并且和NA 相邻的两行。
例如就是下面的 C行和 B,D行。
name  age  sex
A 18 F
B 22 M
C 20 NA
D 19 M
E 20 F
二维码

扫码加我 拉你入群

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

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

关键词:新手求教 name Age SEX

沙发
li0jing 在职认证  发表于 2012-3-2 15:51:32
什么环境!

藤椅
mymine 发表于 2012-3-2 16:01:28
先用S1=LAG(sex);
再倒序排列后用S2=lag(sex);
最后 if sex='NA' or s1='NA' or s2='NA'

板凳
baoaibaobao 发表于 2012-3-2 16:04:01
  1. data have;
  2. input name$  age  sex$;
  3. N=_N_;
  4. cards;
  5. A 18 F
  6. B 22 M
  7. C 20 NA
  8. D 19 M
  9. B 49 D
  10. E 20 F
  11. F 30 NA
  12. G 39 M
  13. ;
  14. PROC SQL NOPRINT;
  15. CREATE TABLE WANT AS
  16.         SELECT B.* FROM HAVE A JOIN HAVE B ON A.SEX='NA' AND B.N-A.N IN (-1,0,1);
  17. QUIT;
复制代码

报纸
wh_wing 发表于 2012-3-2 16:39:03
较为笨拙的方法:

data a;
input name $ age  sex$;
cards;
A 18 F
B 22 M
C 20 NA
D 19 M
E 20 F
;
data b(keep=i);
set a;
if sex='NA' then do;
i=_n_-1;
output;
i=_n_;
output;
i=_n_+1;
output;
end;
run;
data c;
set a ;
i+1;
run;
proc sql;
select c.name,c.age,c.sex
from c,b
where c.i=b.i;
quit;

地板
sunset1986 发表于 2012-3-2 16:48:17
baoaibaobao 发表于 2012-3-2 16:04
非常感谢~
An honest tale speeds best being plainly told.
Cheers!

7
盖瑞 发表于 2012-3-3 14:55:15
baoaibaobao 发表于 2012-3-2 16:04
精辟!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 08:47