Ах, есть некоторые вещи, которые невозможны в этой жизни, и есть такие, которые неправильно поняты и приводят к неприятным ситуациям. @ Роман прав: матрица должна быть одного атомарного типа. Это не датафрейм.
Поскольку матрица должна быть одного типа, попытка снукера bigmemory
для обработки нескольких типов сама по себе плохая вещь. Можно ли это сделать? Я не пойду туда. Зачем? Потому что все остальное будет предполагать, что он получает матрицу, а не фрейм данных. Это приведет к большему количеству вопросов и печали.
Теперь, что вы можете сделать, это определить типы каждого из столбцов и сгенерировать набор отдельных файлов большой памяти, каждый из которых содержит элементы определенного типа. Например. charBM = большая матрица символов, intBM = большая целочисленная матрица и т. д. Затем вы можете разработать оболочку, которая создает фрейм данных из всего этого. Тем не менее, я не рекомендую: относиться к различным элементам так, как они есть, или приводить к однородности, если это возможно, вместо того, чтобы пытаться создать большой грифон данных.
@ mdsumner правильно предположил ff
. Другой вариант хранения - HDF5, доступ к которому вы можете получить через ncdf4
в R. К сожалению, эти другие пакеты не так приятны, как bigmemory
.