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
神奇操作,列名全被替换了! 以上就是今天的内容,希望对你有帮助哦!欢迎点赞、在看、关注、转发!
|