在R中,我想转换

c("ThisText", "NextText")


c("this.text", "next.text")

这是this SO question的反函数,与this one相同,但是R中带有点而不是PHP中带有下划线。

最佳答案

目前尚不清楚整个规则集是什么,但我们假设

  • 我们应该在小写字母之后将任何大写字母小写,并在它们之间插入一个点,并在
  • 之间插入一个点
  • 如果后跟小写字符,则为字符串的第一个字符。

  • 为此,我们可以将perl正则表达式与subgsub结合使用:
    # test data
    camelCase <-  c("ThisText", "NextText", "DON'T_CHANGE")
    
    
    s <- gsub("([a-z])([A-Z])", "\\1.\\L\\2", camelCase, perl = TRUE)
    sub("^(.[a-z])", "\\L\\1", s, perl = TRUE) # make 1st char lower case
    

    给予:
    [1] "this.text"    "next.text"    "DON'T_CHANGE"
    

    关于r - 如何在R中将CamelCase转换为not.camel.case,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22528625/

    10-15 01:49