Почему изменение имени столбца занимает очень много времени при большом data.frame?

У меня есть data.frameв R с 19 миллионами строк и 90 столбцами. У меня много запасных циклов оперативной памяти и процессора. Кажется, что изменение имени одного столбца в этом фрейме данных — очень трудоемкая операция для 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 минут, пока завершится переименование, пока я пойду пить чай. Меня интересует что происходит и почему?

23
задан Matt Dowle 15 June 2012 в 10:27
поделиться