【发布时间】:2015-08-03 18:09:15
【问题描述】:
我很好奇为什么 R 会(显然)根据矩阵中的行数不同地从矩阵中减去数字。注意下面的各种结果:
mat=matrix(rep(1,10),ncol=2)
sub=c(1,100)
test1 = sub - mat
## now increase the number of rows in the matrix, mat.
mat=matrix(rep(1,12),ncol=2)
test2 = sub - mat
为什么test1和test2的结构不同?作为参考,我使用的是 R 版本 3.0.2 (2013-09-25)——“飞盘航行”。 此外,我在这里发现了一个类似的问题:How R subtracts a matrix from an integer,但这是指 data.frame 而不是矩阵,所以我认为它仍然值得一问。
【问题讨论】:
-
在我看来,您期望的是逐行操作,但 R 正在执行逐列操作(尝试
mat<-matrix(1:10,ncol=2); sub-mat并查看结果)。这就解释了为什么如果增加行数会得到不同的结果 -
sub被视为列向量(与所有香草向量一样)并通过矩阵逐列“回收”。你应该看看介绍性的 R 材料,prolly。