【问题标题】:Swap Case of Strings in R [duplicate]在R中交换字符串的情况[重复]
【发布时间】:2019-09-09 05:51:36
【问题描述】:

想要设置一个函数,将所有字符串的大小写从 UPPER 更改为小写,再将小写更改为 UPPER。所以“这是一个测试”将导致“这是一个测试”。我尝试单独使用 toupper 和 tolow 没有成功。

【问题讨论】:

    标签: r


    【解决方案1】:

    1) 像这样使用chartr

    chartr("A-Za-z", "a-zA-Z", "THIS is a TEST")
    ## [1] "this IS A test"
    

    2) 没有那么简单,但仍然是基于 R 和一行:

    gsub("([A-Z])|([a-z])", "\\L\\1\\U\\2", "THIS is a TEST", perl = TRUE)
    ## [1] "this IS A test"
    

    【讨论】:

    • 很高兴了解chartr() 函数。我打算将此作为答案发布,但您的更好... paste(sapply(strsplit(mystring, ""), function(x) ifelse(grepl("[A-Z]", x), tolower(x) , toupper(x))), collapse="")
    【解决方案2】:

    另一种可能性涉及库snakecase

    to_any_case("THIS is a TEST", case = "swap")
    
    [1] "this IS A test"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多