z**********i 发帖数: 12276 | 1 一组数据:
X Y
1 A
2 B
3 A
4 *
1 A
2 B
3 A
4 *
1 B
2 A
3 A
4 A
..
..
..
PROC FREQ;
TABLE X*Y;
RUN;
可以看到数据4的MISSING PERCENT 多于20%,如何把4去除?
多谢!! |
p******a 发帖数: 41 | 2 data one;
input X Y $;
datalines;
1 A
2 B
3 A
4 *
1 A
2 B
3 A
4 *
1 B
2 A
3 A
4 A
;
run;
proc sql;
select * from one
where x not in (
select x from one
group by x
having sum(case when y='*' then 1 else 0 end)/count(*) > 0.2
);
quit;
【在 z**********i 的大作中提到】 : 一组数据: : X Y : 1 A : 2 B : 3 A : 4 * : 1 A : 2 B : 3 A : 4 *
|
z**********i 发帖数: 12276 | 3 非常感谢,正在研究中。实际上,X和Y是我数据中的两个变量,还有好多其他的变量。
【在 p******a 的大作中提到】 : data one; : input X Y $; : datalines; : 1 A : 2 B : 3 A : 4 * : 1 A : 2 B : 3 A
|
b********n 发帖数: 95 | 4 你就直接去掉贝。
data one;
set one;
if x^=4;
run; |
z**********i 发帖数: 12276 | 5 谢谢回复.
数据很大,我只是表达一下我的意想.有几十个变量,X,Y只是其中的两个.
1-4实际有1500,每个1500又有300次.
所以,我要算出20%,然后去掉大于20%的MISSING.
【在 b********n 的大作中提到】 : 你就直接去掉贝。 : data one; : set one; : if x^=4; : run;
|
z**********i 发帖数: 12276 | 6 问个初级的问题,产生的DATA,如何形成一个DATA SET呢?
自己找了老半天,也没弄明白,原来的DATA SET ONE,并没有变化.
非常感谢!!
另外,我的文件很大,要半天才行.
我加了个NOPRINT,就好了,目前的问题是如何调用新的DATA SET.
proc sql NOPRINT;
【在 p******a 的大作中提到】 : data one; : input X Y $; : datalines; : 1 A : 2 B : 3 A : 4 * : 1 A : 2 B : 3 A
|
z**********i 发帖数: 12276 | 7 找到了.
data one;
input X Y $;
datalines;
1 A
2 B
3 A
4 *
1 A
2 B
3 A
4 *
1 B
2 A
3 A
4 A
;
run;
proc sql;
create table two as
select * from one
where x not in (
select x from one
group by x
having sum(case when y='*' then 1 else 0 end)/count(*) > 0.2
);
quit;
【在 p******a 的大作中提到】 : data one; : input X Y $; : datalines; : 1 A : 2 B : 3 A : 4 * : 1 A : 2 B : 3 A
|