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

时间:2019-06-01 02:19:38

标签: r dplyr

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

我尝试过:

mpg %>%
  rename("tr ans" = trans, "mo del" = model) %>%
  rename_if(everything(), contains(" "), str_replace_all(" ", ""))

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

Error: Empty pattern not supported

2 个答案:

答案 0 :(得分:3)

为什么不只使用sub

names(mpg) <- gsub("\\s+", "", names(mpg))

答案 1 :(得分:1)

作为@camille次元,您可以使用rename_all

library(tidyverse)

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

或将rename_ateverything()

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