我可以使用 dplyr 从所有列名中删除空格吗?

Joh*_*moe 4 r dplyr

CSV 的多个列名中包含空格。我想使用单个dplyr命令从这些列名中删除空格。

我试过了:

mpg %>%
  rename("tr ans" = trans, "mo del" = model) %>%
  rename_if(everything(), contains(" "), str_replace_all(" ", ""))
Run Code Online (Sandbox Code Playgroud)

我希望生成原始mpg数据帧,删除我在第二行中插入的空格,但出现错误:

Error: Empty pattern not supported
Run Code Online (Sandbox Code Playgroud)

Ron*_*hah 7

正如@camille提到的,你可以使用rename_all

library(tidyverse)

mpg %>%
  rename("tr ans" = trans, "mo del" = model) %>%
  rename_all(~str_replace_all(., "\\s+", ""))
Run Code Online (Sandbox Code Playgroud)

或者rename_ateverything()

mpg %>%
  rename("tr ans" = trans, "mo del" = model) %>%
  rename_at(vars(everything()), ~str_replace_all(., "\\s+", ""))
Run Code Online (Sandbox Code Playgroud)


Tim*_*sen 5

为什么不直接使用sub

names(mpg) <- gsub("\\s+", "", names(mpg))
Run Code Online (Sandbox Code Playgroud)