【问题标题】:Creating a Matrix From a Vector in R从 R 中的向量创建矩阵
【发布时间】:2014-01-30 17:45:46
【问题描述】:

我有一个包含两列的向量,一列包含数值,一列包含名称。我是 R 的新手,但本质上我想获取一个向量并用它创建一个矩阵,其中矩阵中的值将加在一起。例如,当向量 A 的值为 1 且 B 的值为 1 时,在矩阵 A 和 B 的交点处,我希望这些值相加并变为 2。

我尝试使用 for 循环,但我无法将参数放入循环中。任何帮助将不胜感激,如果没有意义,我很乐意澄清。

基本上我想要的是接受这个:
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         

谢谢!

【问题讨论】:

    标签: r vector matrix


    【解决方案1】:
    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
    

    接下来就是忽略对角线。文森特更新:

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

    【讨论】:

    • 不错的一个。您可以使用diag(z) &lt;- 0 来操作对角线。
    • 感谢您的帮助!有没有办法让名字保持完整,这样我就可以拥有 A B C 和 D 而不是 [,1] [,2] [,3] [,4]?
    • 名字(x)
    • 非常感谢大家! :)
    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2016-12-09
    • 2014-07-27
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多