排到colnames

sal*_*adi 3 r dataframe tidyverse tibble

是否有一种快速的方法(tidyverse可能是API的一部分)将一行转换为data.frame或者tibble有点类似的列名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
Run Code Online (Sandbox Code Playgroud)

krl*_*mlr 9

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
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

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