在R中自定义make.names函数?

时间:2017-05-04 07:32:18

标签: r identifier illegal-characters

我正在自动化我必须使用make.names函数的R代码。 make.names函数的默认行为对我来说很好,但是当我的表名包含“ - ”时,我希望表名不同。

例如,当前行为:

  > make.names("iris-ir")
    [1] "iris.ir"

但是我只想在表名中有“ - ”的情况下修改它:

    > make.names("iris-ir")
    [1] "iris_ir"

我怎样才能做到这一点?编辑:仅使用内置包。

1 个答案:

答案 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
  }