将列转换为数据框中的行名,而无需添加X

时间:2019-04-10 14:47:55

标签: r dataframe tidyverse rowname

我想将现有数据框的一列中的数值转换为行名。是否可以在行名称前不加X来做到这一点?

示例数据框:

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

收件人:

df2 = df1

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

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用column_to_rownames中的tibble,这也会删除已转换为行名的列,即

library(tibble)

column_to_rownames(df1, var = 'names')
#      var
#111 Gene1
#20  Gene2
#32  Gene3
#45  Gene4

答案 1 :(得分:0)

只需这样做:

rownames(df2) = df2$names

但是,如果您有重复的名称,并且要首先删除重复的名称,则需要执行以下操作:

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

希望有帮助。