将 df 名称中的所有 under_scores 替换为 space

Replace all under_scores in df names with space

一个数据框:

mydf <- data.frame(
  SOME_FIELD = 1:3,
  ANOTHER_FIELD = letters[1:3]
)

我想用 space 替换字段名称中的所有下划线。尝试过:

mydf %>% rename_all(str_replace_all('_', ' '))
Error in fix_replacement(replacement) : 
  argument "replacement" is missing, with no default

如何更改所有名称以使用 space 而不是下划线?

您可以使用-

library(dplyr)
library(stringr)

mydf %>% rename_all(~str_replace_all(., '_', ' '))

#  SOME FIELD ANOTHER FIELD
#1          1             a
#2          2             b
#3          3             c

由于 rename_all 已替换为 rename_with -

mydf %>% rename_with(~str_replace_all(., '_', ' '))

或以 R 为基数 -

names(mydf) <- gsub('_', ' ', names(mydf))

我们可以在base R

中使用sub
names(mydf) <- sub("_", " " , names(mydf))
mydf
  SOME FIELD ANOTHER FIELD
1          1             a
2          2             b

或使用chartr

library(dplyr)
mydf %>% 
   rename_with(~ chartr('_', " ", .), everything())
  SOME FIELD ANOTHER FIELD
1          1             a
2          2             b
3          3             c