从较小的"键创建一个矩阵"矩阵

时间:2016-08-20 23:38:03

标签: r

让我们说我有一个较小的相关矩阵("键#34;):

  a    b     c  
a 1.0  0.0   0.2  
b 0.0  1.0   0.1  
c 0.2  0.1   1.0  

我想在ID' s(a,b,c)的另一个数据框/矩阵上使用此密钥来制作更大的矩阵。

例如,此示例数据框:

sex age id 
F   20  a
F   22  b
M   23  b
M   18  a
F   12  c

将使用上面的"键":

变成这个更大的相关矩阵
  a    b   b   a   c
a 1.0 0.0 0.0 1.0 0.2
b 0.0 1.0 1.0 0.0 0.1
b 0.0 1.0 1.0 0.0 0.1
a 1.0 0.0 0.0 1.0 0.2
c 0.2 0.1 0.1 0.2 1.0

这是一种做到这一点的方法,如果有更大的数据框,那么计算效率的方法是什么?

1 个答案:

答案 0 :(得分:7)

R允许按名称进行子集化:

StringBuilder

数据

mat_cor[df1$id,df1$id]
    a   b   b   a   c
a 1.0 0.0 0.0 1.0 0.2
b 0.0 1.0 1.0 0.0 0.1
b 0.0 1.0 1.0 0.0 0.1
a 1.0 0.0 0.0 1.0 0.2
c 0.2 0.1 0.1 0.2 1.0