将相关矩阵转置为 SAS 中的一个长向量

     2023-02-16     118

关键词:

【中文标题】将相关矩阵转置为 SAS 中的一个长向量【英文标题】:Transpose a correlation matrix into one long vector in SAS 【发布时间】:2019-04-30 17:14:43 【问题描述】:

我正在尝试将相关矩阵转换为一个长列向量,以便我具有以下结构

data want;
input _name1_$ _name2_$ _corr_;
datalines;
var1 var2 0.54
;
run;

我有以下代码,它输出 name1 和 corr;但是,我正在努力获得 name2

DATA TEMP_1
    (DROP=I J);
    ARRAY VAR[*] VAR1-VAR10;
    DO I = 1 TO 10;
        DO J = 1 TO 10;
            VAR(J) = RANUNI(0);
        END;
        OUTPUT;
    END;
RUN;

PROC CORR
    DATA=TEMP_1
    OUT=TEMP_CORR
        (WHERE=(_NAME_ NE " ")
         DROP=_TYPE_)
    ;
RUN;

PROC SORT DATA=TEMP_CORR; BY _NAME_; RUN;

PROC TRANSPOSE
    DATA=TEMP_CORR
    OUT=TEMP_CORR_T
    ;
    BY _NAME_;
RUN;

感谢您的帮助

【问题讨论】:

你想要完整的对称矩阵吗?还是只使用上三角形?要包括对角线吗? 我们想要下对角线或上对角线! 【参考方案1】:

你已经接近了。 name 变量遇到了一个奇怪的问题,因为它也变成了 PROC TRANSPOSE 之外的变量。如果你重命名它,你会得到你想要的。我还明确列出了变量并添加了一些 RENAME 数据集选项以获得您可能想要的。

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

编辑:如果您不想重复,可以将 WHERE 添加到 OUT 数据集。

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;

【讨论】:

啊,我明白了,这是有道理的,感谢!【参考方案2】:

只是一个带有 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;

【讨论】:

矩阵和向量相乘

1.常见运算  转置(transpose)    是矩阵的重要操作之一。矩阵的转置是以对角线为轴的镜像,这条从左上角到右下角的对角线被称为主对角线(maindiagonal)。    我们将矩阵A的转置表示为A?,定义如下      ... 查看详情

转置卷积/反卷积(代码片段)

...滑动计算,效率太低,而是将卷积核转换为等效矩阵,将输入转化为向量,通过输入向量核卷积核矩阵的相乘获得输出向量。输出的向量经过整形便可得到我们的二维输出特征。具体操作如下图所示,由于一... 查看详情

转置卷积/反卷积(代码片段)

...滑动计算,效率太低,而是将卷积核转换为等效矩阵,将输入转化为向量,通过输入向量核卷积核矩阵的相乘获得输出向量。输出的向量经过整形便可得到我们的二维输出特征。具体操作如下图所示,由于一... 查看详情

转置卷积/反卷积(代码片段)

...滑动计算,效率太低,而是将卷积核转换为等效矩阵,将输入转化为向量,通过输入向量核卷积核矩阵的相乘获得输出向量。输出的向量经过整形便可得到我们的二维输出特征。具体操作如下图所示,由于一... 查看详情

SQL 将多列转置为行

】SQL将多列转置为行【英文标题】:SQLTransposeMultipleColumnstoRows【发布时间】:2017-03-0914:57:20【问题描述】:我有Fig1中的数据,需要将Columns转换为Rows,如图2所示(必需的结果)。这将是多年和多个时期【问题讨论】:做一个UNION... 查看详情

将 2 个“一对多”表中的记录转置为一条记录

】将2个“一对多”表中的记录转置为一条记录【英文标题】:Transposerecordsfrom2"onetomany"tablesintoonerecord【发布时间】:2013-12-3119:12:32【问题描述】:基本上,我想得到一个类似这样的记录集:CustomerID,CustomerName,OrderNumbers1Joh... 查看详情

如何将列中的连接值转置为行

】如何将列中的连接值转置为行【英文标题】:Howtotransposeconcatenatedvaluesincolumnstorows【发布时间】:2018-12-0805:38:02【问题描述】:输入:itemnumberABC123我想这样输出:itemnumberA1B2C3【问题讨论】:问题不清楚。什么是ABC123?这是一... 查看详情

如何将两个向量相乘并得到一个矩阵?(代码片段)

...X1,向量B是1X5,如果我做AXB,它应该得到一个大小为4X5的矩阵。但我尝试了很多次,进行了多种重塑和转置,它们都会引发错误,说不对齐或返回单个值。我应该如何得到我想要的矩阵的输出产品?答案只要矢量具有正确的形状... 查看详情

matrixderivative矩阵求导

...局单独拿出来,求导结果如下现给出常见的求导结果,推导相关公式时可以查表求导有链式法则(ChainRule),但是矩阵乘积不满足交换律,所以链式法则对于matrix-by-scalarderivatives和scalar-by-matrixderivatives这两种情况不适用下面贴出三种求导... 查看详情

如何将向量附加为 R 矩阵中的列?

...[,3][,4][1,]1243[2,]1157最后,矩阵有很多行。【问题讨论】:相关:***.com/a/2779097 查看详情

正交矩阵和它的转置矩阵相乘不是单位矩阵是怎么回事

如果矩阵A的列向量仅正交化并未单位化,则(A转)A=对角阵,对角线等于a、b、c等常数,即对角线不等于1。若矩阵A的列向量既正交化又单位化,则有等式成立:(A转)A=(A逆)A=单位矩阵E。在矩阵论中,实数正交矩阵是方块矩阵Q... 查看详情

向量组的线性相关性

...组的值等于向量的个数,向量组线性无关、向量组的线性相关性:(1)行列式(将向量的分量按行或列写成行列式)是否为0,注意向量组的个数和向量的维数(2)矩阵(将向量的分量按行或向量的成矩阵)的秩是否等于向量的... 查看详情

如何将子组转置或转置为单行?

】如何将子组转置或转置为单行?【英文标题】:HowdoItransposeorpivotsubgroupsintotoasinglerow?【发布时间】:2019-10-0710:12:51【问题描述】:我有一个group-by-top-n-results查询,显示在示例输入数据中。子组(按ID分组)仅限于前10个结果,... 查看详情

将结果集中的列结果转置为行

】将结果集中的列结果转置为行【英文标题】:Transposecolumnresultinresultsettorows【发布时间】:2011-10-2500:22:24【问题描述】:我有一个这样的结果集ContinentCountry--------------AsiaJapanAsiaRussiaAsiaIndiaEuropeBritainEuropeFrance来自查询selectcontinen... 查看详情

将 QUERY 结果的 GROUPS 组转置为单列

】将QUERY结果的GROUPS组转置为单列【英文标题】:TransposeGROUPSofQUERYresultstosinglecolumn【发布时间】:2020-01-0503:41:59【问题描述】:我在TRANSPOSE\'ing我的QUERY结果时遇到了困难。结果以五个为一组,并且已经从行到列转置一次。现在... 查看详情

将休眠查询的结果转置为 POJO 列表

】将休眠查询的结果转置为POJO列表【英文标题】:TransposeresultofhibernatequeryintolistofPOJOs【发布时间】:2016-10-1109:34:52【问题描述】:我有一个泛型类,其中包含具有以下代码设置的runQuery方法:publicObjectrunQuery(Stringquery)QueryretVal=ge... 查看详情

在 SQL 中将行转置为列标题

】在SQL中将行转置为列标题【英文标题】:TransposingRowstoColumnHeadingsInSQL【发布时间】:2019-07-0208:18:42【问题描述】:我需要帮助将列中的某些行转置到下面的列标题是示例表-第一个是它现在的样子,第二个是我希望它被转置的... 查看详情

将 Mat 图像转置为更大的 Mat 图像,Opencv

】将Mat图像转置为更大的Mat图像,Opencv【英文标题】:TransposingaMatimageintoalargerMatimage,Opencv【发布时间】:2014-03-3104:54:25【问题描述】:我编写了一个函数来获取一个Mat图像并将其转置到一个大小为三倍的空白图像的中心。我已... 查看详情