不敢相信我以前从未在R中注意到这一点!
如果我转置向量,它不会像我期望的那样给出单列矩阵。
示例
test <- c(1, 2, 3, 4)
t(test)
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
那在我的一个功能中造成了问题。
有什么解决方法吗?
答案 0 :(得分:2)
我们用matrix
换行,默认情况下它给出一列
matrix(test)
# [,1]
#[1,] 1
#[2,] 2
#[3,] 3
#[4,] 4
?matrix
的文档中所述
如果未给出nrow或ncol之一,则尝试从数据长度和另一个参数推断出它。如果两者都不给出,则返回一个单列矩阵。
此外,matrix
是具有vector
属性的dim
,因此,另一个选择是分配dim
属性
dim(test) <- c(length(test), 1)
t
这样做的原因是根据?t
如果x是向量,则将其视为一列,即结果是1行矩阵。