У меня есть 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 минут, пока завершится переименование, пока я пойду пить чай. Меня интересует что происходит и почему?