我有一个表格,我正在读取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
有什么建议吗?
答案 0 :(得分:0)
您的矩阵不会成为vector
的{{1}}。它变为vectors
matrix
,共有8行。发生这种情况是因为您提供了lists
(list
),其中包含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的强制层次结构后的原子元素矩阵。