У меня есть data.frame
в R с 19 миллионами строк и 90 столбцами. У меня много резервных циклов RAM и CPU. Кажется, что изменение одного имени столбца в этом фрейме данных является очень интенсивной операцией для R.
system.time(colnames(my.df)[1] <- "foo")
user system elapsed
356.88 16.54 373.39
Почему это так? Каждая строка хранит имя столбца? Является ли это создание совершенно нового кадра данных? Кажется, эта операция должна завершиться в незначительное время. Я не вижу ничего очевидного в записи R.
Я запускаю сборку 7600 из R (64 бит) в Windows 7 и в моей текущей рабочей области, устанавливая имена кодов на маленьком data.frame, занимает время "0" в соответствии с system.time()
.
Изменить: я знаю о возможности использования data.table
, и, честно говоря, я могу подождать 5 минут, чтобы переименование закончилось, пока я получаю чай. Меня интересует , что происходит и почему?