2015-11-22 5 views
0

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

Here is a screenshoot

Я пытался назвать его, используя colnames следующим образом:

colnames(copernicus_test)[1] <- "Star ID" 

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

Конечно, у меня есть не транспонированные данные, хранящиеся в виде списка.

+1

Просьба привести воспроизводимый пример. 'copernicus_test <- mtcars; colnames (copernicus_test) [1] <- "Звездный идентификатор"; View (copernicus_test) '-> работает. Первый «столбец» не является столбцом, это имена строк. – lukeA

+1

Как сказал Лука, это не столбец, это имена строк. Вы можете использовать 'copernicus_test [" Star ID "] <- row.names (copernicus_test)' –

+0

Привет @PierreLafortune Я попробовал вашу команду, но при повторном просмотре кадра данных он ничего не сделал; -/ –

ответ

1

Для демонстрации с воспроизводимым например:

df <- data.frame(x=1:4, y=LETTERS[1:4], row.names=month.abb[1:4]) 
df 
#  x y 
# Jan 1 A 
# Feb 2 B 
# Mar 3 C 
# Apr 4 D 

«первая колонка» действительно только имена строк. Для того, чтобы использовать его в качестве колонки мы создаем новый столбец и присвоить имена строк к нему:

df['Star ID'] <- row.names(df) 
df 
#  x y Star ID 
# Jan 1 A  Jan 
# Feb 2 B  Feb 
# Mar 3 C  Mar 
# Apr 4 D  Apr 

Теперь у нас есть новый столбец Star ID использовать для операций. Чтобы устранить исходные имена строк, запустите row.names(df) <- NULL.

Боковое примечание: Старайтесь не называть столбцы с пробелами, это создает потенциальную головную боль позже.

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