2015-01-02 5 views
1

Существует кадр данных training с 20 колонками. Первый столбец называется «цель». Я хочу изменить имена столбцов 2:20 следующим образом: X1, X2, X3, ...Как переименовать столбцы, начиная со второго?

Если я запустил эту команду, то все столбцы будут переименованы, в том числе 1-й (целевой).

names(training) <- paste("X", 1:ncol(training), sep=""); 

Как переименовать столбцы, начиная со второго?

+0

Ну, конечно, все они будут переименованы, если вы выберете их все. Почему бы просто не выбрать те, которые вас интересуют с помощью '[]' extract? – A5C1D2H2I1M1N2O1R2T1

+0

Возможно, имена (тренировки) [- 1] <- paste0 ('X', 1: (ncol (training) -1)) ' – akrun

+0

@ Ананда Махто: Я пробовал тренироваться [, - 1]. Однако, как я вижу, правильный способ - использовать (обучение) -1 –

ответ

3
colnames(training)[2:20]<-paste("X", 1:19, sep="") 
+0

Выше отлично. Просто примечание: 'colnames' является эквивалентным для' names' и 'paste0' немного более эффективно, чем' paste'. Таким образом, вы можете немного подкорректировать код 'names (training) [2:20] <- paste0 (" X ", 1:19)'. – KFB

+1

@KFB, 'colnames' не эквивалентны« именам »- это просто случается с' data.frame'. – A5C1D2H2I1M1N2O1R2T1

+0

@KFB, также вы можете уточнить, почему 'paste0' эффективнее, чем' paste'? У меня есть сомнения. – flodel

Смежные вопросы