我正在自动化我必须使用make.names
函数的R代码。 make.names
函数的默认行为对我来说很好,但是当我的表名包含“ - ”时,我希望表名不同。
例如,当前行为:
> make.names("iris-ir")
[1] "iris.ir"
但是我只想在表名中有“ - ”的情况下修改它:
> make.names("iris-ir")
[1] "iris_ir"
我怎样才能做到这一点?编辑:仅使用内置包。
答案 0 :(得分:2)
使用以下功能:
library(dplyr)
make_names<-function(name)
{
name <- as.character(name)
if(contains("-", vars = name))
sub("-", "_", name)
}
这应该做你想要的。
抱歉,我忘了提及contains
功能在dplyr
包中。
没有dplyr
make_names<-function(name)
{
name <- as.character(name)
if(grepl("-", name, fixed = T))
sub("-", "_", name)
else
name
}