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

标签 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

我试图做的是将 Peakid 变成行名。我试过了但失败了:

> df %>%  column_to_rownames(var = "Peakid")
Error: `df` already has row names

正确的做法是什么?

最佳答案

我们将行名称设置为 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

关于r - 如何将数据框中的列转换为行名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50561497/

相关文章:

r - 为什么 runif() 不能预测区间最大值?

r - 如何将 data.frame 转换为树状结构对象,例如树状图

python - 优化 - 数据帧聚合在聚合过程中是否会使用不同的过滤器 : df. loc?

r - 当每组 n 不同时过滤 n 行分组数据框

r - 从文本中提取多个关键字并打印在数据框中

r - 如何获取列表第一层的变量名称?

html - 使用教程包在 ioslides 演示中使用 datacamp light 练习

python - 尝试使用 get_loc 时出现 Pandas 错误

按组回归并保留R中的所有列

R CMD氧不被识别