在r中创建矩阵时出错

时间:2011-08-01 13:36:40

标签: r matrix

我正在尝试在R中创建一个256 * 256矩阵。简单的任务我想......如果我创建了这样的数据

aa=1:65536
z = matrix(bb,nrow=256,ncol=256,byrow=T)

我有我想要的矩阵。

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

等等。但是,我没有创建“aa”数据,而是将其读取为

aa = read.table("myfile.txt",header=F)
> aa[c(1:10),]
[1] 1513.708 1513.971 1514.067 1513.971 1513.875 1513.622 1513.524 1513.578 1513.577 1513.481

当我读aa时,数据看起来很好但是当我尝试将其转换为矩阵时,矩阵显示为

     [,1]          [,2]          [,3]          [,4]          [,5] 
[1,] Numeric,65536 Numeric,65536 Numeric,65536 Numeric,65536 Numeric,65536 

等等。知道为什么会这样吗?

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:2)

请注意?read.table的“内存使用情况”部分中的此段落:

 ‘read.table’ is not the right tool for reading large matrices,
 especially those with many columns: it is designed to read _data
 frames_ which may have columns of very different classes.  Use
 ‘scan’ instead for matrices.

当然,您的256x265矩阵不是,但scan似乎仍然更合适。

aa <- matrix(scan("myfile.txt"), nrow=256, ncol=256, byrow=TRUE)

答案 1 :(得分:1)

尝试sep=""参数read.table()。使用sep参数,您可以定义文件的分隔符,您可以定义的分隔符以及在?read.file中的查找方式。评论是否还有其他问题。

编辑:您可以复制粘贴我们正在阅读的文件吗?