我有一个带有两列的向量,一列包含数值,一列包含名称。我是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
谢谢!
答案 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")