我正在尝试在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
等等。知道为什么会这样吗?
非常感谢你的帮助!
答案 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
中的查找方式。评论是否还有其他问题。