函数将字符串转换为 R 中的首字母缩略词

时间:2021-05-11 06:23:22

标签: r function stringr abbreviation acronym

我有一个字符串“California Art Craft Painting Society”,我想在 R 中编写一个函数 x,可以将任何字符串转换为首字母缩写词“CACPS”。我使用了以下代码:

acronym <- function(x){
  abbreviate(x)
}  

有没有办法用stringr写函数比如先strsplit字符串,然后用strsub拉每个单词的第一个字母(不要用缩写)?

4 个答案:

答案 0 :(得分:2)

如果你想使用字符串拆分方法,试试这个

String regex = "^VAR[0-9]+=\"(?:(?![^\"]*%GH)[^\"]+|[^\"]*%GH[^\".]*\\.(?![^\"]*%GH)[^\"]*)\"$";

或者使用 acronym <- function(x) { sapply(strsplit(x, ' '), function(y) paste0(substr(y, 1, 1), collapse = '')) } acronym(c("California Art Craft Painting Society", 'A Big Word')) #[1] "CACPS" "ABW" :

stringr

答案 1 :(得分:2)

这可能有用。它对前面没有分词符的字符使用 str_remove_all,并删除所有空格。

library(stringr)

create_acronym <- function(x){
      str_remove_all(x , "(?<!\\b)\\w|\\s" ) 
    }

答案 2 :(得分:2)

gsub 选项

> gsub("\\b([A-Z])(\\w+)?\\s?", "\\1", v)
[1] "CACPS" "ABW"

数据

v <- c("California Art Craft Painting Society", "A Big Word")

答案 3 :(得分:2)

恕我直言,最简单(也是最简洁)的选项很简单:

abbreviate(x, minlength = 1)