Ошибка создания матрицы в r - PullRequest
1 голос
/ 01 августа 2011

Я пытаюсь создать матрицу 256 * 256 в R. Простая задача, я подумал ... Если я создаю данные так, что

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

У меня есть матрица, которую я хочу, например,

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

и так далее.Тем не менее, я не создаю данные «аа», а читаю их так, что

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

Когда я читаю аа, данные выглядят нормально, но когда я пытаюсь превратить их в матрицу, матрица читается как

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

и так далее.Есть идеи, почему это происходит?

Большое спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 01 августа 2011

Обратите внимание на этот параграф в разделе «Использование памяти» ?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 голос
/ 01 августа 2011

Попробуйте параметр sep="" для read.table().С помощью параметра sep вы можете определить разделители для вашего файла, какие разделители вы можете определить и как вы найдете в ?read.file.Прокомментируйте, если есть какие-либо дополнительные проблемы.

РЕДАКТИРОВАТЬ: можете ли вы скопировать и вставить нам немного файла, который вы читаете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...