Ответ 1
Вам нужно поместить c()
вокруг индексов
names(wb.misc)[c(3,13,14,20,22,47,61,62,64,68,73)] = paste("Econ", names(wb.misc)[c(3,13,14,20,22,47,61,62,64,68,73)], sep = "-")
Я пытаюсь изменить несколько избранных имен переменных в кадре данных. Как я могу это сделать без ввода каждого из старых имен и каждого из новых имен? Я думал, что код ниже может работать, но это не так. Я пытаюсь добавить "Econ" к каждому из существующих имен, идентифицированных в кадре данных.
names(wb.misc)[3,13,14,20,22,47,61,62,64,68,73] <-
paste("Econ", names(wb.misc)[3,13,14,20,22,47,61,62,64,68,73], sep = "-")
Вам нужно поместить c()
вокруг индексов
names(wb.misc)[c(3,13,14,20,22,47,61,62,64,68,73)] = paste("Econ", names(wb.misc)[c(3,13,14,20,22,47,61,62,64,68,73)], sep = "-")
Одним из способов эффективного получения имен переменных является использование dput(names(df))
, где df
- ваш data.frame.
Например, используя встроенный набор данных airquality
, вы можете сделать следующее
dput(names(airquality))
Что дает вам:
c("Ozone", "Solar.R", "Wind", "Temp", "Month", "Day")
Затем вы можете редактировать извлечение нужных столбцов без необходимости вводить их с нуля. Например, вы хотите переименовать следующие три переменные, вы можете использовать rename.vars
в gdata
.
vars <- c("Ozone", "Wind", "Temp")
library(gdata)
rename.vars(airquality, from=vars, to=paste0("Econ", vars))
Использование имен фактических переменных также, как правило, сделает ваш код более надежным.