Arrays 在SAS中将相关矩阵转换为一个长向量

Arrays 在SAS中将相关矩阵转换为一个长向量,arrays,sas,transpose,pearson-correlation,sas-studio,Arrays,Sas,Transpose,Pearson Correlation,Sas Studio,我试图把一个相关矩阵变成一个长列向量,这样我就有了下面的结构 data want; input _name1_$ _name2_$ _corr_; datalines; var1 var2 0.54 ; run; 我有以下代码,输出name1和corr;然而,我正在努力获得名称2 非常感谢您的帮助很接近。您在name变量方面遇到了一个奇怪的问题,因为它也变成了PROC转置之外的一个变量。如果你重命名它,你会得到你想要的。我还显式列出了变量,并添加了一些重命名数据集选项,以获得您可能想要的结果

我试图把一个相关矩阵变成一个长列向量,这样我就有了下面的结构

data want;
input _name1_$ _name2_$ _corr_;
datalines;
var1 var2 0.54
;
run;
我有以下代码,输出name1和corr;然而,我正在努力获得名称2


非常感谢您的帮助

很接近。您在name变量方面遇到了一个奇怪的问题,因为它也变成了PROC转置之外的一个变量。如果你重命名它,你会得到你想要的。我还显式列出了变量,并添加了一些重命名数据集选项,以获得您可能想要的结果

PROC TRANSPOSE
DATA=TEMP_CORR (rename=_name_ = Name1)
OUT=TEMP_CORR_T (rename = (_name_ = Name2 col1=corr))
;
by name1;
var var1-var10;
RUN;
编辑:如果您不想重复,可以在输出数据集中添加一个WHERE

PROC TRANSPOSE
DATA=TEMP_CORR (rename=_name_ = Name1)
OUT=TEMP_CORR_T (rename = (_name_ = Name2 col1=corr) where = name1 > name2)
;
by name1;
var var1-var10;
RUN;

你很接近。您在name变量方面遇到了一个奇怪的问题,因为它也变成了PROC转置之外的一个变量。如果你重命名它,你会得到你想要的。我还显式列出了变量,并添加了一些重命名数据集选项,以获得您可能想要的结果

PROC TRANSPOSE
DATA=TEMP_CORR (rename=_name_ = Name1)
OUT=TEMP_CORR_T (rename = (_name_ = Name2 col1=corr))
;
by name1;
var var1-var10;
RUN;
编辑:如果您不想重复,可以在输出数据集中添加一个WHERE

PROC TRANSPOSE
DATA=TEMP_CORR (rename=_name_ = Name1)
OUT=TEMP_CORR_T (rename = (_name_ = Name2 col1=corr) where = name1 > name2)
;
by name1;
var var1-var10;
RUN;

只是一个带有VNAME函数的数组。要仅输出上三角形,请将DO循环的下界设置为_N_

data want ;
  length _name1_ _name2_ $32 _corr_ 8 ;
  keep _name1_ _name2_ _corr_;
  set corr;
  where _type_ = 'CORR';
  array x _numeric_;
  _name1_=_name_;
  do i=_n_ to dim(x);
    _name2_ = vname(x(i));
    _corr_ = x(i);
    output;
  end;
run;

只是一个带有VNAME函数的数组。要仅输出上三角形,请将DO循环的下界设置为_N_

data want ;
  length _name1_ _name2_ $32 _corr_ 8 ;
  keep _name1_ _name2_ _corr_;
  set corr;
  where _type_ = 'CORR';
  array x _numeric_;
  _name1_=_name_;
  do i=_n_ to dim(x);
    _name2_ = vname(x(i));
    _corr_ = x(i);
    output;
  end;
run;

你想要全对称矩阵吗?还是只使用上三角?你想包括对角线吗?我们只想要下对角线或上对角线!你想要全对称矩阵吗?还是只使用上三角?你想包括对角线吗?我们只想要下对角线或上对角线!啊,我明白了,这是有道理的,谢谢!啊,我明白了,这是有道理的,谢谢!