2014-04-04 310 views
4

我下面一些code,我可以申请的一切,直到我得到的命令:什么%*%意味着R中

s1 %*% cc1$xcoef 

此行不为我工作,我无法找到文档解释它的目的。我得到这个错误:

Error in s1 %*% cc1$xcoef : non-conformable arguments 

%*%做什么,我可以使用另一个功能?

我,使用R版本3.0.3(2014年3月6日), “温暖的小狗”

+3

看看['?“%*%”'](http://stat.ethz.ch/R-manual/R-patched/library/base/html/ma tmult.html)来阅读帮助文件。 –

+0

谢谢我在使用时忘记了引号? – kungphil

回答

16

使用?'%*%'得到的文档。

%*%是矩阵乘法。对于矩阵乘法,您需要一个m x n矩阵乘以n x p矩阵。

+1

你的答案告诉我,我可以在'?'后面用引号来查找R中其他算术运算符的文档,比如'?“%%”。 – coip

4

矩阵乘法,请看下面的例子:

> A <- matrix (c(1,3,4, 5,8,9, 1,3,3), 3,3) 
> A 
    [,1] [,2] [,3] 
[1,] 1 5 1 
[2,] 3 8 3 
[3,] 4 9 3 
> 
> B <- matrix (c(2,4,5, 8,9,2, 3,4,5), 3,3) 
> 
> B 
    [,1] [,2] [,3] 
[1,] 2 8 3 
[2,] 4 9 4 
[3,] 5 2 5 
> 
> 
> A %*% B 
    [,1] [,2] [,3] 
[1,] 27 55 28 
[2,] 53 102 56 
[3,] 59 119 63 

> B %*% A 
    [,1] [,2] [,3] 
[1,] 38 101 35 
[2,] 47 128 43 
[3,] 31 86 26 

另见:

http://en.wikipedia.org/wiki/Matrix_multiplication

如果不遵循矩阵规则的大小,你将得到错误:

> A <- matrix(c(1,2,3,4,5,6), 3,2) 
    > A 
    [,1] [,2] 
[1,] 1 4 
[2,] 2 5 
[3,] 3 6 

> B <- matrix (c(3,1,3,4,4,4,4,4,3), 3,3) 

> B 
     [,1] [,2] [,3] 
    [1,] 3 4 4 
    [2,] 1 4 4 
    [3,] 3 4 3 
    > A%*%B 
    Error in A %*% B : non-conformable arguments