由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教一个SAS问题
相关主题
求教 SAS数据转化很挑战的data transformation problem help
SAS problem ask for help!hi, an interview question
SAS 编程问题 (有包子)问一个简单的SAS问题,多谢
overall mean in sas for several variables[提问]怎样sort这个dataset?
how to trasform data.请教个用SAS读数据的问题。
help for a sas question关于recode data的问题,多谢。
请教用SAS的一个数据处理的问题sas adv 63题 52
神奇的proc means跪求SAS大牛们一个简单问题
相关话题的讨论汇总
话题: aa话题: bb话题: er话题: xs话题: v1
进入Statistics版参与讨论
1 (共1页)
g****8
发帖数: 2828
1
请教一下有没有什么简单的code解决这个问题。
数据大概是这样的:
Id v1 v2 v3 v4 v5
1 aa aa bb vv dd
2 er re er n/a er
3 n/a aa bb n/a aa
想要count每个id里面v1到v5有几个unique的value,n/a不算。
就是这样。
Id v1 v2 v3 v4 v5 nv
1 aa aa bb vv dd 4
2 er re er n/a er 2
3 n/a aa bb n/a aa 2
好像要是两两比较太麻烦了。因为n/a可能出现在任何地方。
j******o
发帖数: 127
2
transpose by ID, drop n/a and keep unique v value for each ID, count unique
number by ID, then merge back to original data.
h********o
发帖数: 103
3
Try this:
=================================
data test;
input id (v1 - v5) ($);
cards;
1 aa aa bb vv dd
2 er re er n/a er
3 n/a aa bb n/a aa
4 aa aa aa bb bb
5 aa aa aa aa aa
6 aa bb bb cc cc
7 n/a n/a n/a n/a n/a
;
data temp (keep = id v1-v5 cnt);
set test;
t1=v1;t2=v2;t3=v3;t4=v4;t5=v5;
array arr(5) $ t1 - t5;
do i = 1 to dim(arr);
do j = 2 to dim(arr);
if i ~= j then do;
if arr(i) = arr(j) or arr(i) = "n/a" then arr(i) = "";
end;
end;
end;
cnt = 5-cmiss(of t1-t5);
run;
s*********n
发帖数: 20
4

This may help..
data have;
input (v1-v5) ($);
cards;
aa aa bb vv dd
er re er n/a er
n/a aa bb n/a aa
;
run;
data new;
set have;
call sortc (of v:);
array xs v:;
count=1;
do _n_=1 to dim(xs)-1;
count+( xs(_n_) ne 'n/a' and xs(_n_) ne xs(_n_+1));
end;
set have;
run;

【在 g****8 的大作中提到】
: 请教一下有没有什么简单的code解决这个问题。
: 数据大概是这样的:
: Id v1 v2 v3 v4 v5
: 1 aa aa bb vv dd
: 2 er re er n/a er
: 3 n/a aa bb n/a aa
: 想要count每个id里面v1到v5有几个unique的value,n/a不算。
: 就是这样。
: Id v1 v2 v3 v4 v5 nv
: 1 aa aa bb vv dd 4

D******n
发帖数: 2836
5
Your script has a bug on all n/a situations. Following should resolve
it.
data raw;
input id (v1 - v5) ($);
datalines;
1 aa aa bb aa dd
2 er re er n/a er
3 n/a aa bb n/a aa
4 aa aa aa bb bb
5 aa aa aa aa aa
6 aa bb bb cc cc
7 n/a n/a n/a n/a n/a
7 aa n/a n/a n/a zz
;
run;
proc print;run;
data new;
set raw;
call sortc( of v1-v5);
array xs v:;
count=0;
do i=2 to dim(xs);
count+( xs(i-1) ne 'n/a' and xs(i) ne xs(i-1));
end;
count + (xs(dim(xs)) ne 'n/a');
set raw;
run;
proc print;run;

【在 s*********n 的大作中提到】
:
: This may help..
: data have;
: input (v1-v5) ($);
: cards;
: aa aa bb vv dd
: er re er n/a er
: n/a aa bb n/a aa
: ;
: run;

1 (共1页)
进入Statistics版参与讨论
相关主题
跪求SAS大牛们一个简单问题how to trasform data.
请教flag问题help for a sas question
请教:SAS 处理Repeated Measurement的问题请教用SAS的一个数据处理的问题
请教一个SAS问题神奇的proc means
求教 SAS数据转化很挑战的data transformation problem help
SAS problem ask for help!hi, an interview question
SAS 编程问题 (有包子)问一个简单的SAS问题,多谢
overall mean in sas for several variables[提问]怎样sort这个dataset?
相关话题的讨论汇总
话题: aa话题: bb话题: er话题: xs话题: v1