r - 如何使用 dplyr 管道在指定行之后重命名数据框中的所有列
问题描述
我有一个数据框,df
:
df <- structure(list(V1 = c("H1", " 0.9",
"4.1", "4.0"), V2 = c("H2", " 2.174",
"4.1", "4.1"), V3 = c("H3", " 2.592",
"3.8", "4.1"), V4 = c("H4", " 2.236",
"3.8", "4.087463")), row.names = c(NA, -4L), class = "data.frame")
> df
V1 V2 V3 V4
1 H1 H2 H3 H4
2 0.9 2.174 2.592 2.236
3 4.1 4.1 3.8 3.8
4 4.0 4.1 4.1 4.0
我想在第一行之后重命名列,但使用 dplyr 管道。
期望的结果如下所示:
H1 H2 H3 H4
2 0.9 2.174 2.592 2.236
3 4.1 4.1 3.8 3.8
4 4.0 4.1 4.1 4.0
我已经尝试过了,但它不起作用:
df_new <- df %>%
rename_all(.,df[1,])
有人可以建议一种使用 dplyr 的整洁方法吗?
解决方案
我们可以row_to_names
使用janitor
library(janitor)
library(dplyr)
df %>%
row_to_names(row_number = 1) %>%
type.convert(as.is = TRUE) %>%
as_tibble
# A tibble: 3 x 4
# H1 H2 H3 H4
# <dbl> <dbl> <dbl> <dbl>
#1 0.9 2.17 2.59 2.24
#2 4.1 4.1 3.8 3.8
#3 4 4.1 4.1 4.09
推荐阅读
- html - react js内联样式中是否有标签样式
- javascript - Bootstrap 4自定义文件上传未在标签中显示文件名
- r - 编织 Rmarkdown 文件时出错 - 安装 tidyverse 后发生
- php - Laravel 流明没有正确更新
- azure - Azure 工件 - 下载通用工件的特定版本
- sql - 更新在数据库中存储为字符串的 XML 节点
- python-3.x - 如何读取文本数据并转换为 pandas 数据框
- java - 当作者说 - “两个线程试图同时执行一段代码”时,这是什么意思?
- python - 如何分析算法以减少内存空间消耗?
- amazon-web-services - 无法运行 AWS lambda 函数