我能否使用dplyr删除所有列名中的空格?

6

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

我尝试过:

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

我希望能够生成原始的mpg数据框,并删除我在第二行插入的空格,但是出现了错误:

Error: Empty pattern not supported

1
请尝试使用 rename_all 而不是 rename_if - camille
谢谢你的帮助。我自己无法使rename_all起作用,但@Ronak帮助了我完成其余部分。 - JohnDoeVsJoeSchmoe
2个回答

7

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

library(tidyverse)

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

或者使用带有 everything() 的 rename_at。
mpg %>%
  rename("tr ans" = trans, "mo del" = model) %>%
  rename_at(vars(everything()), ~str_replace_all(., "\\s+", ""))

6
为什么不直接使用sub呢?
names(mpg) <- gsub("\\s+", "", names(mpg))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接