2015-11-01 2 views
1

Я пытаюсь переместить столбец в конец кадра данных, и я изо всех силR перемещение по имени столбца в конец кадра данных

output_index <- grep(output, names(df)) df <- cbind(df[,-output_index], df[,output_index])

Это упорядочивает данные правильно, однако он преобразует данные в матрицу, которая не работает. Как я могу это сделать, не теряя имена столбцов и сохраняя данные в качестве фрейма данных.

+1

Удалить запятые в кадре данных подмножеств, то есть 'ДФ [-output_index]' 'не ДФ [- output_index ] ' –

+0

@RichardScriven - правда ли это? 'is.data.frame (cbind (iris [, - 1], iris [, 1]))' возвращает 'TRUE' - вы теряете имя, да, но оно по-прежнему является' data.frame' – thelatemail

+1

Кто знает. Трудно сказать без воспроизводимого примера. Возможно, для начала было только две колонки. Затем они оба будут отброшены до векторов до 'cbind'. –

ответ

0

Не нужен, перед индексом:

output_index <- grep(output, names(df)) df <- cbind(df[-output_index], df[output_index])

0
df <- data.frame(id=1:10, output=rnorm(10,1,1), input=rnorm(10,1,1)) 
output_index <- grep("output", names(df)) 
res.df <- cbind(df[,-output_index], df[,output_index]) 
Смежные вопросы