全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学
4834 12
2010-01-16
我用proc corr得到下面的表格,并用ods output导出到work里的表格里:
            Pearson Correlation Coefficients
            Prob > |r| under H0: Rho=0
            Number of Observations

                Age            Weight           Oxygen         RunTime

Age       1.00000      -0.23354        -0.31474         0.14478
                 0.2061        0.0963          0.4536
                    31              31                29                29

Weight   -0.23354      1.00000        -0.15358       0.20072
                 0.2061                              0.4264        0.2965
                   31               31                 29               29

Oxygen  -0.31474      -0.15358        1.00000       -0.86843
                   0.0963        0.4264                             <.0001
                    29               29                 29              28

RunTime  0.14478        0.20072       -0.86843       1.00000
                  0.4536        0.2965         <.0001
                      29            29                   28              29

我现在只想保留相关系数的数据,去掉p-value和number of observation的数据,并做成下面的这种格式:
couple of variables      corr
Age*Weight                 -0.23354
Age*Oxygen                -0.31474
Age*RunTime             0.14478
...                                  ...
每一对变量名不要重复。
请问哪位高人能给个提示或者给个code?
谢谢啦
二维码

扫码加我 拉你入群

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

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

全部回复
2010-1-16 22:24:17
elliott828 发表于 2010-1-16 20:54
我用proc corr得到下面的表格,并用ods output导出到work里的表格里:
            Pearson Correlation Coefficients
            Prob > |r| under H0: Rho=0
            Number of Observations

                Age            Weight           Oxygen         RunTime

Age       1.00000      -0.23354        -0.31474         0.14478
                 0.2061        0.0963          0.4536
                    31              31                29                29

Weight   -0.23354      1.00000        -0.15358       0.20072
                 0.2061                              0.4264        0.2965
                   31               31                 29               29

Oxygen  -0.31474      -0.15358        1.00000       -0.86843
                   0.0963        0.4264
1) Use the outp option instead of ODS to get correlation matrix.
2) Get what in a data step as below.

HTH

proc corr data=sashelp.class outp=pearson(where=(_TYPE_='CORR'));
var age height weight;
run;

data need_corr;
   set pearson;
   array corr(*)   Height     Weight ;
   i=_n_;
   do j=i to dim(corr);
       corr_name=compress(_name_||'*'||vname(corr(j)) );
       corrcoef= corr(j);
       output;
    end;
    if i=dim(corr) then stop;
    keep  corr_name      corrcoef ;
run;

proc print data=need_corr; run;
二维码

扫码加我 拉你入群

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

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

2010-1-16 23:02:45
proc report
二维码

扫码加我 拉你入群

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

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

2010-1-17 05:46:36
2# bobguy


谢谢你bobguy!
但是按照你的code做出来结果是一个只有三个变量关系的表格:
1.jpg

data pearson;
set corr1;
array corr(*) age weight;
i=_n_;
do j=i to dim(corr);
corr_name=compress(_name_||'*'||vname(corr(j)));
corrcoef=corr(j);
output;
end;
if i=dim(corr) then stop;
run;

这是我用的code,稍微改了一下变量。

如何才能按照这种格式显示所有变量间的相关系数呢?

另外,如果把这个code应用到macro里面,如何处理变量名呢?我的意思是,对不同的数据,变量的名字和数量都不一样,如何用一种code来处理所有数据呢?

谢谢啦!
二维码

扫码加我 拉你入群

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

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

2010-1-17 06:55:08
elliott828 发表于 2010-1-17 05:46
2# bobguy


谢谢你bobguy!
但是按照你的code做出来结果是一个只有三个变量关系的表格:


data pearson;
set corr1;
array corr(*) age weight;
i=_n_;
do j=i to dim(corr);
corr_name=compress(_name_||'*'||vname(corr(j)));
corrcoef=corr(j);
output;
end;
if i=dim(corr) then stop;
run;

这是我用的code,稍微改了一下变量。

如何才能按照这种格式显示所有变量间的相关系数呢?

另外,如果把这个code应用到macro里面,如何处理变量名呢?我的意思是,对不同的数据,变量的名字和数量都不一样,如何用一种code来处理所有数据呢?

谢谢啦!
Suppose you have 5 variables namely, x1 x2 x3 x4 x5

The information you want is the up-diagonal elements.

1) outp=pearson(where=(_TYPE_='CORR')); ** this where is needed to keep only information about correlations.
2) array corr(*)   Height     Weight ; ***change this into array corr(*)   x2 x3 x4 x5 ;
二维码

扫码加我 拉你入群

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

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

2010-1-17 07:21:49
5# bobguy 实在是很感谢!大致明白了!
我现在是要做一个macro。先尝试一下用普通code弄出来的样子:)
十分感谢!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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