Проблема с изменением имен столбцов data.frame
заключается в том, что, почти невероятно, копируется весь data.frame
. Даже когда он находится в .GlobalEnv
и никакая другая переменная не указывает на него.
Пакет data.table
имеет функцию setnames()
, которая изменяет имена столбцов по ссылкам без копирования всего набора данных. data.table
отличается тем, что не копирует при записи, что может быть очень важно для больших наборов данных. (Вы сказали, что ваш набор данных был большим.) Просто укажите old
и new
имена:
require(data.table)
setnames(DT,"MyName.1", "MyNewName")
# or more explicit:
setnames(DT, old = "MyName.1", new = "MyNewName")
?setnames