楼主: bhzhangkelei
2385 11

如何通过条件筛选 [推广有奖]

  • 1关注
  • 0粉丝

本科生

22%

还不是VIP/贵宾

-

威望
0
论坛币
39 个
通用积分
1.2000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1065 点
帖子
29
精华
0
在线时间
107 小时
注册时间
2012-12-28
最后登录
2025-6-24

楼主
bhzhangkelei 发表于 2013-8-29 12:44:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
name   a    b   c   d
we       1    2   0   1
yu        1   1    1  1
wu       0    0   0   0
fw       0    0    1   0
将其中变量全为0的观测删除,
变成
name   a    b   c   d
we       1    2   0   1
yu       1   1    1  1

fw       0    0    1   0
程序该如何写?
二维码

扫码加我 拉你入群

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

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

关键词:条件筛选 name 如何写 如何 程序

沙发
童小军 发表于 2013-8-29 12:58:17
没学过sas,但是我想可以通过设置条件:使得每行总和为0的那个个案删除,sum()==0.

藤椅
zsqiang 发表于 2013-8-29 13:02:07
EXCEL中直接多列排序就可以达到效果了

板凳
wwang111 发表于 2013-8-29 13:14:09
data test;
input name $ a b c d;
cards;
we       1    2   0   1
yu       1   1    1  1
wu       0    0   0   0
fw       0    0    1   0
;

data test1;
set test;
if sum(of _numeric_)=0 then delete;
run;
只有一个罗纳尔多

报纸
caicaierfeng 发表于 2013-8-29 15:43:09
wwang111 发表于 2013-8-29 13:14
data test;
input name $ a b c d;
cards;
请问_numeric_是什么变量? 怎么起到了sum(a,b,c,d)的作用啊?

地板
wwang111 发表于 2013-8-29 15:55:20
caicaierfeng 发表于 2013-8-29 15:43
请问_numeric_是什么变量? 怎么起到了sum(a,b,c,d)的作用啊?
_numeric_代表数据集中所有的数值型变量
只有一个罗纳尔多

7
beijingdizheng 发表于 2013-8-29 22:46:01
wwang111 发表于 2013-8-29 13:14
data test;
input name $ a b c d;
cards;
这个有点问题 如果有-1 + 1 的情况肯定就不行了 不具有推广性
已有 1 人评分学术水平 热心指数 收起 理由
wwang111 + 1 + 1 我很赞同

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

8
beijingdizheng 发表于 2013-8-30 00:21:55
如果变量特别多不能一一写出来 我只能想到一种比较笨的方法基本可以通用 即用sas字典关于变量的记录来编程
data have;
input name $ a b c d e f g h i j k;
cards;
we 1 2 0 1 0 0 0 0 0 0 0
yu 1 1 1 1 0 0 0 0 0 0 0
wu 0 0 0 0 0 0 0 0 0 0 0
fw 0 0 1 0 0 0 0 0 -1 0 0
;
run;
proc sql;
select count(name) into : count ,name into :
var separated by ' '  from sashelp.vcolumn
where libname='WORK' and memname=upcase('have') and type='num';
quit;

data want(drop=total);
set have;
array dd &var;
total=0;
do over dd;
if dd=0 then total+1;
end;
if total=&count then delete;
run;

9
wwang111 发表于 2013-8-30 08:34:11
beijingdizheng 发表于 2013-8-30 00:21
如果变量特别多不能一一写出来 我只能想到一种比较笨的方法基本可以通用 即用sas字典关于变量的记录来编程
...
data test;
set have;
array var
  • _numeric_;
    do n=1 to dim(var);
    var[n]=abs(var[n]);
    end;
    if sum(of a--k)=0 then delete;
    drop n;
    run;

    我觉得这样也可以
  • 只有一个罗纳尔多

    10
    beijingdizheng 发表于 2013-8-30 12:04:20
    wwang111 发表于 2013-8-30 08:34
    data test;
    set have;
    array var
  • _numeric_;
  • 但原始值就变动了貌似

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

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