分享

2行代码重命名上百个列名!

 阿越就是我 2023-10-12 发布于上海

2行代码重命名数百个变量名!

主要是使用了tidyverse里面一个不常用的函数和技巧。

library(tidyverse)
## -- Attaching packages ----------------------------- tidyverse 1.3.1 --
## v tibble  3.1.6     v dplyr   1.0.8
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.0.1     v forcats 0.5.1
## v purrr   0.3.4
## -- Conflicts -------------------------------- tidyverse_conflicts() --
## x tidyr::extract()   masks magrittr::extract()
## x dplyr::filter()    masks stats::filter()
## x dplyr::lag()       masks stats::lag()
## x purrr::set_names() masks magrittr::set_names()

用一个简单的例子进行演示。

# 首先构造一个数据
df <- tibble(
  var1 = LETTERS[1:3],
  var2 = 1:3
)

# 原数据长这样
df
# A tibble: 3 x 2
  var1   var2
  <chr> <int>
1 A         1
2 B         2
3 C         3

接下来先进行一些神奇操作:

# 把新旧列名一一对应放到一个数据框里
df_names <- tibble(
  new_name = c("col1","col2"),
  old_name = c("var1","var2")
)

# 神奇函数 可以把数据框和向量相互转换!
var_names <- deframe(df_names)

var_names

##   col1   col2 
## "var1" "var2"

再用一个神奇操作:!!!,就可以实现替换列名!

df_2 <- df %>% 
  rename(!!!var_names) # 神奇

df_2

# A tibble: 3 x 2
   col1   col2
   <chr> <int>
 1 A         1
 2 B         2
 3 C         3

神奇操作,列名全被替换了!

以上就是今天的内容,希望对你有帮助哦!欢迎点赞、在看、关注、转发

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多