将数据框行转换为列名

Posted

技术标签:

【中文标题】将数据框行转换为列名【英文标题】:Convert data frame row to column names 【发布时间】:2017-10-17 07:43:00 【问题描述】:

有没有一种快速的方法(可能是tidyverse API 的一部分)将一行转换为data.frametibble 的列名,有点类似于tibble::column_to_rownames

我意识到有很多方法可以做到这一点,例如有点笨拙:

> df <- head(iris)
> 
> df %>%
+     set_colnames(magrittr::extract(., 1,)) %>%
+     magrittr::extract(-1,)
  5.1 3.5 1.4 0.2      1
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa

【问题讨论】:

在导入数据时使用header = T。根据需要使用skip 使标题成为第一行。 在我的情况下,数据不是从文件中读取的,但如果是的话,那会起作用 【参考方案1】:

janitor::row_to_names() 实现了这个:

library(tidyverse)

iris %>%
  head() %>%
  janitor::row_to_names(1)
#>   5.1 3.5 1.4 0.2      1
#> 2 4.9 3.0 1.4 0.2 setosa
#> 3 4.7 3.2 1.3 0.2 setosa
#> 4 4.6 3.1 1.5 0.2 setosa
#> 5 5.0 3.6 1.4 0.2 setosa
#> 6 5.4 3.9 1.7 0.4 setosa

由reprex package (v0.2.1) 于 2019 年 5 月 29 日创建

【讨论】:

【参考方案2】:

好吧,你可以简单地:colnames(df) &lt;- as.character(df[1, ])

如果你想删除第一行:df &lt;- df[-1,]

【讨论】:

以上是关于将数据框行转换为列名的主要内容,如果未能解决你的问题,请参考以下文章

将字典转换为数据框,键作为列名,键值作为数据框的列值

SQL将一些列名转换为行值,将一个列名行值转换为列名

如何将spark数据帧列名和行数据转换为json数据

如何将数据框列名从字符串转换为适合(qplot,ggplot2)的参数?

将 Python Pandas 数据框转换为 JSon 格式并通过使用 Python 添加其列名保存到 MongoDB 数据库中

如何将 MySql 列名转换为小写以提高可读性?