在R中,当我使用如下命令时:
b <-c(7,10)
b
默认情况下会创建行向量(1行,2列)还是列向量(1行,2列)?
从显示的输出中我看不出来。
我是R初学者(显而易见:)
最佳答案
都不行向量默认情况下没有维度属性,仅具有长度。
如果查看有关矩阵算术的文档help("%*%")
,则会看到:
如果两个矩阵相符,则将它们相乘。如果一个参数是一个
向量,它将被提升为行或列矩阵
这两个论点是一致的。如果两个都是相同长度的向量,
它将返回内部乘积(作为矩阵)。
因此,R将以使矩阵乘积有意义的任何方式解释向量。
一些例子说明:
> b <- c(7,10)
> b
[1] 7 10
> dim(b) <- c(1,2)
> b
[,1] [,2]
[1,] 7 10
> dim(b) <- c(2,1)
> b
[,1]
[1,] 7
[2,] 10
> class(b)
[1] "matrix"
> dim(b) <- NULL
> b
[1] 7 10
> class(b)
[1] "numeric"
矩阵只是具有维度属性的向量。因此,添加显式维使其成为矩阵,而R会在上下文中以任何可行的方式做到这一点。
还有一个在矩阵乘法中的行为示例:
> m <- matrix(1:2,1,2)
> m
[,1] [,2]
[1,] 1 2
> m %*% b
[,1]
[1,] 27
> m <- matrix(1:2,2,1)
> m %*% b
[,1] [,2]
[1,] 7 10
[2,] 14 20
关于r - c命令默认在R中创建行向量还是列向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277806/