1) Руководство по импорту / экспорту R должно быть первым портом вызова для вопросов об импорте данных - есть много вариантов, и то, что будет работать для вас, может быть очень конкретным.
http://cran.r -project.org / doc / manual / R-data.html
read.table
, в частности, значительно улучшил производительность при использовании предоставленных ему опций, в частности colClasses
, comment.char
,и nrows
- это потому, что эта информация должна быть выведена из самих данных, что может быть дорогостоящим.
2) Существует определенный предел длины (общего количества элементов) для любого вектора, матрицы, массива, столбца в data.frame или списке.Это связано с 32-битным индексом, используемым под капотом, и верно для 32-битных и 64-битных R. Число 2 ^ 31 - 1. Это максимальное количество строк для data.frame, ноон настолько велик, что у вас гораздо больше шансов исчерпать память даже для отдельных векторов, прежде чем вы начнете собирать несколько из них.
Подробнее см. help(Memory-limits)
и help(Memory)
.
Один вектор такой длины займет много гигабайт памяти (зависит от типа и режима хранения каждого вектора - 17,1 для числового), поэтому вряд ли это будет правильным пределом, если вы действительно не продвигаете вещи.Если вам действительно нужно вытолкнуть вещи за пределы доступной системной памяти (здесь 64-битная версия обязательна), тогда стоит использовать стандартные методы работы с базами данных, описанные в руководстве по импорту / экспорту, или параметры файла с отображенной памятью (например, пакет ff
).принимая во внимание.CRAN Task View High Performance Computing является хорошим ресурсом для этой цели.
Наконец, если у вас есть стеки ОЗУ (16 ГБ или более) и вам нужна 64-разрядная индексация, это может появиться в следующей версии R. http://www.mail -archive.com / r-help @r-project.org/msg92035.html
Кроме того, Росс Ихака обсуждает некоторые исторические решения и будущие направления для языка, подобного R, в статьях и беседах здесь: http://www.stat.auckland.ac.nz/~ihaka/?Papers_and_Talks