为什么我的矩阵成为向量的向量?

时间:2015-05-06 19:33:56

标签: r matrix dataframe

我有一个表格,我正在读取R(作为data.frame),然后从该data.frame中选择一些数字列以制作矩阵。我希望从中得到一个2D矩阵,但这就是我得到的:

full = read.table('complete_dataset.txt', header=T, sep="\t", quote="",row.names=NULL, stringsAsFactors=FALSE)

> matrix(full[ ,4:11])
     [,1]        
[1,] Numeric,6152
[2,] Numeric,6152
[3,] Numeric,6152
[4,] Numeric,6152
[5,] Numeric,6152
[6,] Numeric,6152
[7,] Numeric,6152
[8,] Numeric,6152
> dim(matrix(full[ ,4:11]))
[1] 8 1

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的矩阵不会成为vector的{​​{1}}。它变为vectors matrix,共有8行。发生这种情况是因为您提供了listslist),其中包含8个元素作为data.frame的数据参数,然后创建列表的矩阵,默认值为1列。

你基本上做了:

matrix()

在您可能需要matrix(list(1:3,2:4,3:5)) [,1] [1,] Integer,3 [2,] Integer,3 [3,] Integer,3 的评论中注明@MrFlick,这会将您的子集as.matrix(full[ ,4:11])与类full[ ,4:11]转换为R的强制层次结构后的原子元素矩阵。