全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5665 3
2011-12-21
VAR1        VAR2
A        B
B        A
B        C
C        B
C        D
D        C
E        F
E        H
F        E
F        G
G        F
H        E

上述数据,如果用Excel数据透视表,可以做成下述的效果:
计数项:VAR1        A        B        C        D        E        F        G        H        总计
A        0        1        0        0        0        0        0        0        1
B        1        0        1        0        0        0        0        0        2
C        0        1        0        1        0        0        0        0        2
D        0        0        1        0        0        0        0        0        1
E        0        0        0        0        0        1        0        1        2
F        0        0        0        0        1        0        1        0        2
G        0        0        0        0        0        1        0        0        1
H        0        0        0        0        1        0        0        0        1
总计        1        2        2        1        2        2        1        1        12

现在想说,能不能拿SAS实现这种效果的呢?

二维码

扫码加我 拉你入群

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

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

全部回复
2011-12-21 17:30:03
果然没人回答。。。。。

SAS果然是我的软肋啊。。。。

果断投奔Clementine的怀抱~

就是不知道Clementine支持多大的数据量?
二维码

扫码加我 拉你入群

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

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

2011-12-21 18:28:51
data test1;
        input var1 $ var2 $ @@;
cards;
A B
B A
B C
C B
C D
D C
E F
E H
F E
F G
G F
H E
;run;
data test2;
        set test1(keep = var1 rename=(var1=var))
                test1(keep = var2 rename=(var2=var));
run;
proc sort data = test2 nodupkey; by var; run;
proc sort data = test1 nodupkey; by _all_; run;

%macro test_macro();
data _null_;
        set test2 nobs=n;
        call symput(cats('v',_n_), var);
        if _n_ = n then do;
                call symput('n' ,n);
                stop;
        end;
run;
data test3(drop = var1-var2 var_add);
        if 0 then set test1;
        if _n_ = 1 then do;
                dcl hash h(dataset:"test1");
                h.definekey("var1","var2");
                h.definedata("var1","var2");
                h.definedone();
        end;
        set test2;
        %do ii = 1 %to &n.;
                _&&v&ii.. = 0;
        %end;
        %do ii = 1 %to &n.;
                var_add = compress("&&v&ii..");
                if h.find(key:var, key:var_add) = 0 then _&&v&ii.. = 1;
        %end;
run;
%mend;
%test_macro();
二维码

扫码加我 拉你入群

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

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

2011-12-22 10:42:00
proc tabulate。。。。。。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群