Ответ 1
colnames(df)[colnames(df)=="oldname"] <- "newname"
или просто names
names(df)[names(df)=="oldname"] <- "newname"
Существуют различные функции для переименования столбцов в пакетах.
Я знаю, что я могу изменить имя столбца data.frame:
colnames(df)[3] <- "newname"
Но могут быть случаи, когда столбец, который я хочу изменить, не находится в третьей позиции. Есть ли способ посмотреть столбец по имени и изменить его? Как это...
colnames(df)[,"oldname"] <- "newname"
Кстати, я пробовал этот код, и я продолжаю получать incorrect number of subscripts on matrix
.
Спасибо.
colnames(df)[colnames(df)=="oldname"] <- "newname"
или просто names
names(df)[names(df)=="oldname"] <- "newname"
Существуют различные функции для переименования столбцов в пакетах.
colnames(df)[colnames(df)=="oldname"] <- "newname"
или
names(df)[names(df)=="oldname"] <- "newname"
(поскольку names
и colnames
эквивалентны для кадра данных)
или, вы можете искать
library(reshape)
df <- rename(df,c(oldname="newname"))
Я использовал пакет data.table
сегодня, и когда я попытался изменить имя столбца, используя мой обычный метод, появилось сообщение, рекомендующее этот подход:
library(data.table)
df <- read.table(text= "
region state county
1 1 1
1 2 2
1 2 3
2 1 4
2 1 4
", header=TRUE, na.strings=NA)
df
setnames(df, "county", "district")
df
Несколько более общий подход, который заменит все "старые" s в начале любого текущего имени "новым" в том же месте символа:
names(df) <- sub("^old", "new", names(df) )