首页 > 解决方案 > 如何从矩阵中提取 2 个成对向量?

问题描述

我看过一篇关于如何将 2 个成对向量组合成一个矩阵的帖子。我想知道是否可以反过来做?

标签: rdataframetidyverse

解决方案


如果我理解你的问题,我认为 dplyr 包中的收集功能在这里会有很大帮助。

library(dplyr)

x <- c('A','B','C')
dat <- expand.grid(x, x)
dat$Var3 <- rnorm(9)
df <- reshape(dat, idvar = "Var1", timevar = "Var2", direction = "wide")

df
   Var1     Var3.A     Var3.B      Var3.C
    A    -0.6600467 -0.3104995  0.09838619
    B    -0.7893837  1.1798629  1.07563953
    C    -1.8380682  0.5383169 -0.40365158

gather(df,"col_names",'values',2:4)
   Var1   col_names      values
     A    Var3.A     -0.66004667
     B    Var3.A     -0.78938370
     C    Var3.A     -1.83806815
     A    Var3.B     -0.31049949
     B    Var3.B      1.17986293
     C    Var3.B      0.53831689
     A    Var3.C      0.09838619
     B    Var3.C      1.07563953
     C    Var3.C     -0.40365158

推荐阅读