在R中,在字符串

时间:2017-03-08 22:32:43

标签: r

我熟悉函数toupper()tolower(),但这并不完全符合我的要求。这是我拥有的字符串和我想要的字符串的示例:

this = "This is the string THAT I have!"
that = "tHIS IS THE STRING that i HAVE!"

简单到用一个例子描述,更难实现(我认为)。

谢谢!

2 个答案:

答案 0 :(得分:5)

如果有更好的方法,我有点好奇:

chartr(x = this,
       old = paste0(c(letters,LETTERS),collapse = ""),
       new = paste0(c(LETTERS,letters),collapse = ""))

@Joris在?chartr注意到您可以使用字符范围,避免使用paste

的评论中提供有用的观察
chartr("a-zA-Z", "A-Za-z",this)

答案 1 :(得分:0)

这是一种适用于az / AZ之间的字符的方法:

text <- "aBàÉ"

up <- gregexpr("\\p{Lu}", text, perl=TRUE)
lo <- gregexpr("\\p{Ll}", text, perl=TRUE)
regmatches(text,up)[[1]] <- tolower(regmatches(text,up)[[1]])
regmatches(text,lo)[[1]] <- toupper(regmatches(text,lo)[[1]])
text
#> [1] "AbÀé"