如何将数据框中的列名转换为行名

sca*_*der 3 r dataframe dplyr tidyverse

我有以下数据框:

library(tidyverse)
df <- structure(list(Peakid = c("chr1_3119849_3120205", "chr1_3164889_3165097", 
"chr1_3360993_3361240", "chr1_3514805_3515121", "chr1_3670855_3672134", 
"chr1_3936145_3936398"), Length = c(357L, 209L, 248L, 317L, 1280L, 
254L), gc_cont = c(0.384831, 0.418269, 0.48583, 0.5, 0.719312, 
0.359684)), .Names = c("Peakid", "Length", "gc_cont"), row.names = c(NA, 
6L), class = "data.frame")


df
#>                 Peakid Length  gc_cont
#> 1 chr1_3119849_3120205    357 0.384831
#> 2 chr1_3164889_3165097    209 0.418269
#> 3 chr1_3360993_3361240    248 0.485830
#> 4 chr1_3514805_3515121    317 0.500000
#> 5 chr1_3670855_3672134   1280 0.719312
#> 6 chr1_3936145_3936398    254 0.359684
Run Code Online (Sandbox Code Playgroud)

我试图做的是变成Peakid行名称。我尝试过这个但失败了:

> df %>%  column_to_rownames(var = "Peakid")
Error: `df` already has row names
Run Code Online (Sandbox Code Playgroud)

正确的做法是什么?

akr*_*run 7

我们将行名称设置为NULL,然后使用columns_to_rownames

df %>%
  `row.names<-`(., NULL) %>% 
   column_to_rownames(var = "Peakid")
#                     Length  gc_cont
#chr1_3119849_3120205    357 0.384831
#chr1_3164889_3165097    209 0.418269
#chr1_3360993_3361240    248 0.485830
#chr1_3514805_3515121    317 0.500000
#chr1_3670855_3672134   1280 0.719312
#chr1_3936145_3936398    254 0.359684
Run Code Online (Sandbox Code Playgroud)