簡體   English   中英

通過切換字符串模式重命名數據框列名

[英]Rename dataframe column names by switching string patterns

我有以下數據框,我想將列名重命名為c("WBC_MIN_D7", "WBC_MAX_D7", "DBP_MIN_D3")

> dataf <- data.frame(
+     WBC_D7_MIN=1:4,WBC_D7_MAX=1:4,DBP_D3_MIN=1:4
+ )
> dataf
  WBC_D7_MIN WBC_D7_MAX DBP_D3_MIN
1          1          1          1
2          2          2          2
3          3          3          3
4          4          4          4
> names(dataf)
[1] "WBC_D7_MIN" "WBC_D7_MAX" "DBP_D3_MIN"

或許, rename_with中的rename_with函數可以做到,但我不知道該怎么做。

您可以使用帶有sub捕獲組按順序提取值 -

names(dataf) <- sub('^(\\w+)_(\\w+)_(\\w+)$', '\\1_\\3_\\2', names(dataf))

可以在rename_with使用相同的正則表達式 -

library(dplyr)

dataf %>% rename_with(~ sub('^(\\w+)_(\\w+)_(\\w+)$', '\\1_\\3_\\2', .))

#  WBC_MIN_D7 WBC_MAX_D7 DBP_MIN_D3
#1          1          1          1
#2          2          2          2
#3          3          3          3
#4          4          4          4

您可以使用名稱(yourDF) <- c("A","B",...,"Z") 用您的向量重命名您的dataf:

names(dataf) <- c("WBC_MIN_D7", "WBC_MAX_D7", "DBP_MIN_D3")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM