j*****1 发帖数: 75 | 1 有这样一组数据,有10几个变量,每个变量的值有N,Y,或者缺失.请看一下第一组数据.
想得到的结果是第二组数据,就是如果每个id只要有y, 就输出y,没有y就输出n. 请问
这个macro用 SAS 该怎么写啊? 谢谢!
id a b c d
1 y y n y
1 n . . .
1 . n . .
2 y n y n
2 y n y n
3 n y y y
3 . . n y
4 y y n n
4 y y . n
4 n y . .
4 y . y y
id a b c d
1 y y n y
2 y n y n
3 n y y y
4 y y y y | E******y 发帖数: 4 | 2 data test(drop=a b c d rename=(aa=a bb=b cc=c dd=d));
set test;
by id;
length aa bb cc dd $1;
retain aa bb cc dd;
if first.id then do;
aa="n"; bb="n";cc="n";dd="n";
end;
if a="y" then aa="y";
if b="y" then bb="y";
if c="y" then cc="y";
if d="y" then dd="y";
if last.id then output;
run;
【在 j*****1 的大作中提到】 : 有这样一组数据,有10几个变量,每个变量的值有N,Y,或者缺失.请看一下第一组数据. : 想得到的结果是第二组数据,就是如果每个id只要有y, 就输出y,没有y就输出n. 请问 : 这个macro用 SAS 该怎么写啊? 谢谢! : id a b c d : 1 y y n y : 1 n . . . : 1 . n . . : 2 y n y n : 2 y n y n : 3 n y y y
| j*****1 发帖数: 75 | 3 谢谢了!
【在 E******y 的大作中提到】 : data test(drop=a b c d rename=(aa=a bb=b cc=c dd=d)); : set test; : by id; : length aa bb cc dd $1; : retain aa bb cc dd; : if first.id then do; : aa="n"; bb="n";cc="n";dd="n"; : end; : if a="y" then aa="y"; : if b="y" then bb="y";
| l******m 发帖数: 111 | 4 data test;
input id $ a $ b $ c $ d $;
cards;
1 y y n y
1 n . . .
1 . n . .
2 y n y n
2 y n y n
3 n y y y
3 . . n y
4 y y n n
4 y y . n
4 n y . .
4 y . y y
;
proc sql;
create table test2 as
select id,
max(a) as A1,
max(b) as b1,
max(c) as c1,
max(d) as d1
from test
group by id
;
quit;
【在 j*****1 的大作中提到】 : 有这样一组数据,有10几个变量,每个变量的值有N,Y,或者缺失.请看一下第一组数据. : 想得到的结果是第二组数据,就是如果每个id只要有y, 就输出y,没有y就输出n. 请问 : 这个macro用 SAS 该怎么写啊? 谢谢! : id a b c d : 1 y y n y : 1 n . . . : 1 . n . . : 2 y n y n : 2 y n y n : 3 n y y y
|
|