names(chocolateData) <- gsub("[[:space:]+]", "_", names(chocolateData))
我已经使用此代码用下划线省略了空格,但是它没有用。我已经查看了时间并想要reviewed_time
,但是我得到了reviewed.time
答案 0 :(得分:0)
R不喜欢包含空格的变量名。您可以使用它们,但是它们使事情变得怪异,需要使用`
。因此,当某些函数创建数据框时,它们会自动将变量名称中的空格转换为句点。
我认为这是在创建chocolateData
时将变量`reviewed time`
转换为reviewed.time
。由于您的gsub
表达式仅替换空白,因此句号不会更改。
如果这是问题所在,那么最简单的解决方案就是简单地更改表达式以替换句点:
gsub("[[:space:].]+", "_", 'reviewed.time')
[1] "reviewed_time"
另一个选择是跟踪更改变量名的函数。最可能的罪魁祸首是read.table
(或者是孩子read.csv
和read.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
我强烈建议您检出janitor
:https://cran.r-project.org/web/packages/janitor/janitor.pdf