将向量转置为单列?

时间:2019-01-15 12:38:04

标签: r

不敢相信我以前从未在R中注意到这一点!

如果我转置向量,它不会像我期望的那样给出单列矩阵。

示例

test <- c(1, 2, 3, 4)

t(test)
  

[,1] [,2] [,3] [,4]
  [1,] 1 2 3 4

那在我的一个功能中造成了问题。

有什么解决方法吗?

1 个答案:

答案 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行矩阵。