我想使用gsub删除空格

时间:2018-07-31 16:37:08

标签: r data-cleansing

names(chocolateData) <- gsub("[[:space:]+]", "_", names(chocolateData))

我已经使用此代码用下划线省略了空格,但是它没有用。我已经查看了时间并想要reviewed_time,但是我得到了reviewed.time

2 个答案:

答案 0 :(得分:0)

R不喜欢包含空格的变量名。您可以使用它们,但是它们使事情变得怪异,需要使用`。因此,当某些函数创建数据框时,它们会自动将变量名称中的空格转换为句点。

我认为这是在创建chocolateData时将变量`reviewed time`转换为reviewed.time。由于您的gsub表达式仅替换空白,因此句号不会更改。

如果这是问题所在,那么最简单的解决方案就是简单地更改表达式以替换句点:

gsub("[[:space:].]+", "_", 'reviewed.time')
[1] "reviewed_time"

另一个选择是跟踪更改变量名的函数。最可能的罪魁祸首是read.table(或者是孩子read.csvread.delim)。尝试传递参数:

check.names = FALSE

这将防止它在加载数据时更改变量名(但如果您有不想要的变量名,可能会在下游引起问题)。

答案 1 :(得分:0)

这不使用gsub,但是是清除变量名的绝佳工具

chocolateData <- data.frame("dark chocolate" = "yum", "white chocolate" = "yuck", check.names = FALSE)
chocolateData
#    dark chocolate white chocolate
# 1            yum            yuck

library(janitor)
chocolateData <- clean_names(chocolateData, case = "snake")
chocolateData
#    dark_chocolate white_chocolate
# 1            yum            yuck

我强烈建议您检出janitorhttps://cran.r-project.org/web/packages/janitor/janitor.pdf