楼主: farever_lover
4290 14

[原创博文] 关于drop的一个问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

25%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
209 点
帖子
20
精华
0
在线时间
14 小时
注册时间
2011-2-17
最后登录
2011-6-22

楼主
farever_lover 发表于 2011-4-13 15:18:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
一个数据集中有变量a b c,如果a不等于缺失,那么剔除变量b c,保留a;如果a等于缺失,那么剔除变量a,保留b c,如何实现呢?
data a;
   set b;
       if a=.  then drop a;else drop b c;
run;
这样好像实现不了。请教高手。
二维码

扫码加我 拉你入群

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

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

关键词:drop 剔除变量 Then Data else 如何

沙发
soporaeternus 发表于 2011-4-13 15:54:19
结果数据集究竟有哪几个变量
Let them be hard, but never unjust

藤椅
baoaibaobao 发表于 2011-4-13 15:56:37
是啊,不同的条件保留不同的变量,一个数据集貌似实现不了~

板凳
farever_lover 发表于 2011-4-13 16:00:22
不同的条件会生成不同的数据集,我的问题是如何在一个数据集中依据某一变量的条件选择性删除某些变量

报纸
baoaibaobao 发表于 2011-4-13 16:15:15
farever_lover 发表于 2011-4-13 16:00
不同的条件会生成不同的数据集,我的问题是如何在一个数据集中依据某一变量的条件选择性删除某些变量
你改成这样试试:
if a=. then do;

drop b;
end;

地板
farever_lover 发表于 2011-4-13 16:18:11
我也试过了,这样也不行,drop语句并未受if的限制

7
soporaeternus 发表于 2011-4-13 16:20:17
farever_lover 发表于 2011-4-13 15:18
一个数据集中有变量a b c,如果a不等于缺失,那么剔除变量b c,保留a;如果a等于缺失,那么剔除变量a,保留b c,如何实现呢?
data a;
   set b;
       if a=.  then drop a;else drop b c;
run;
这样好像实现不了。请教高手。
  1. if a is not missing then output r1(drop=b c);
  2. else then output r2(drop=a);
复制代码


很久没写代码了,不保证语法的正确性,大致就是这个意思了
Let them be hard, but never unjust

8
farever_lover 发表于 2011-4-13 16:31:54
可以不用output吗。因为这样后面的数据处理会有点麻烦。

9
soporaeternus 发表于 2011-4-13 16:39:49
如果结果数据是唯一的,那其究竟有几个变量
Let them be hard, but never unjust

10
farever_lover 发表于 2011-4-13 17:04:03
data a;
    set b;
    if col1^=.   then do; drop col2 col3 col4;end;
    if col1=.    then  do; drop col1;end;
    if col5^=.  then do;drop col6 col7 col8;end;
    if col5=. then do;drop  col5;end;
................
run;
大概共10个if语句

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 21:05