У меня есть большой фрейм данных с объемом около 900 МБ. Затем я попытался изменить его следующим образом:
dataframe[[17]][37544]=0
Кажется, что R использует больше, чем 3G-RAM, и R жалуется на "Ошибка: не может выделить вектор размером 3,0 Mb", (я на 32-битной машине.)
Я нашел этот способ лучше:
dataframe[37544, 17]=0
но R footprint все еще удваивается, и для выполнения команды требуется довольно много времени.
На фоне C/С++ я действительно смущен этим поведением. Я думал, что что-то вроде dataframe[37544, 17]=0
должно быть завершено в мигающем режиме, не затрачивая никакой дополнительной памяти (только одна ячейка должна быть изменена). Что делает R для тех команд, которые я написал? Каков правильный способ изменения некоторых элементов в кадре данных, а затем без дублирования памяти?
Большое спасибо за вашу помощь!
Тао