从R中的向量创建矩阵

时间:2014-01-30 17:45:46

标签: r vector matrix

我有一个带有两列的向量,一列包含数值,一列包含名称。我是R的新手,但基本上我想要一个向量并用它创建一个矩阵,其中矩阵中的值将是加在一起。因此,例如,在向量A的值为1且B的值为1的情况下,在A和B的交点处的矩阵中,我想要将值添加并变为2.

我试过使用for循环但是我在循环中放入的参数有问题。任何帮助将不胜感激,如果没有意义,我很乐意澄清一些事情。

基本上我想要的是采取这个:
A 1
B 0
C 0
D 1
把它变成这个:

   A   B   C   D
A      1   1   2
B  1       0   1
C  1   0       1
D  2   1   1         

谢谢!

1 个答案:

答案 0 :(得分:4)

R > x <- c(1,0,0,1)
R > outer(x, x, "+")
     [,1] [,2] [,3] [,4]
[1,]    2    1    1    2
[2,]    1    0    0    1
[3,]    1    0    0    1
[4,]    2    1    1    2

接下来就是忽略对角线。由Vincent更新:

names(x) <- c("A","B","C","D")