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

问题描述

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

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

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

解决方法

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

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
,

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

library(stringr)

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

gsub 选项

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

数据

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

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

abbreviate(x,minlength = 1)