Преобразование столбца в имена строк в кадре данных без добавления X

Я хотел бы преобразовать числовые значения в столбце существующего фрейма данных в имена строк. Можно ли сделать это без добавления X к именам строк?

Пример кадра данных:

df1 = data.frame(names=c(111,20,32,45),
                 var=c("Gene1","Gene2","Gene3","Gene4"))

To:

df2 = df1

rownames(df2) = make.names(df2$names, unique=TRUE)

Спасибо


person ip2018    schedule 10.04.2019    source источник


Ответы (2)


Просто сделайте это так:

rownames(df2) = df2$names

Но если у вас есть повторяющиеся имена и вы хотите сначала удалить дубликаты, вам нужно сделать следующее:

df2 = df2[!duplicated(df2$names),]
rownames(df2) = df2$names

Надеюсь, поможет.

person Taher Ahmed Ghaleb    schedule 10.04.2019

Вы можете использовать column_to_rownames из tibble, который также удаляет столбец, который был преобразован в имена строк, т.е.

library(tibble)

column_to_rownames(df1, var = 'names')
#      var
#111 Gene1
#20  Gene2
#32  Gene3
#45  Gene4
person Sotos    schedule 10.04.2019
comment
Спасибо. Получение ошибки: Error in .rowNamesDF‹-(x, value = value) : duplicate 'row.names' are not allowed - person ip2018; 10.04.2019
comment
Я понял, что в столбце names есть NA. NA удален, проблема решена! - person ip2018; 11.04.2019