Creating a Matrix From a Vector in R
我有一个包含两列的向量,一列包含数值,一列包含名称。我是 R 的新手,但本质上我想获取一个向量并用它创建一个矩阵,其中矩阵中的值将加在一起。例如,当向量 A 的值为 1 且 B 的值为 1 时,在矩阵 A 和 B 的交点处,我希望这些值相加并变为 2。
我尝试过使用 for 循环,但我无法将参数放入循环中。任何帮助将不胜感激,如果没有意义,我很乐意澄清一些事情。
基本上我想要的是接受这个:
1
0
0
1
并把它变成这样:
1
2 3 4 5 |
A B C D
A 1 1 2 B 1 0 1 C 1 0 1 D 2 1 1 |
谢谢!
1
2 3 4 5 6 7 |
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 |
接下来就是忽略对角线。文森特更新:
1
|
names(x) <- c(“A”,”B”,”C”,”D”)
|
- 好东西。您可以使用 diag(z) <- 0 来操作对角线。
- 谢谢您的帮助!有没有办法让名字保持完整,这样我就可以拥有 A B C 和 D 而不是 [,1] [,2] [,3] [,4]?
- 名称(x) <- c(“A”,”B”,”C”,”D”)
- 非常感谢大家! :)
来源:https://www.codenong.com/21463763/