R:矩阵乘法(R实用图挖掘)

时间:2014-04-09 10:38:22

标签: r matrix

在书中(第105/106页),矩阵乘以向量:

# create a matrix that shows the links between pages
A = matrix(c(0, 1, 1, 0, 0, 0,
          1, 0, 1, 1, 1, 1,
          0, 1, 0, 0, 0, 0,
          0, 0, 1, 0, 1, 0,
          0, 1, 1, 0, 0, 0,
          0, 0, 1, 0, 0, 0), 
          nrow = 6, ncol = 6, byrow = TRUE,
          dimnames = list(c("d1", "d2", "d3", "d4", "d5", "d6"),
                             c("d1", "d2", "d3", "d4", "d5", "d6")));

h = c(rep(1,6));
t(A) * h

运行时,我得到一个矩阵,而不是矢量。作者正在做什么矩阵运算以及它如何映射到R,因为结果是结果矩阵的总和,即:

bookResult = c(1,3,5,1,2,1)

最佳, [R

1 个答案:

答案 0 :(得分:4)

对于R中的矩阵乘法,您应该使用%*%,而不是*。 (我有点不清楚:你发布了一些你写的东西的代码,还是这本书的摘录?)

无论如何,使用此运算符可以得到您想要的相同结果:

> t(A) %*% h
   [,1]
d1    1
d2    3
d3    5
d4    1
d5    2
d6    1
> as.vector(t(A) %*% h)
[1] 1 3 5 1 2 1

通过在R提示符下键入?matmult,您可以在R中了解有关矩阵乘法的更多信息。