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



我有一个字符串"加利福尼亚工艺美术协会;我想在R中写一个函数x,它可以把任何字符串变成一个缩写词";CACPS";。我使用了以下代码:

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

有没有一种方法可以使用stringr编写函数,比如先用strsplit字符串,然后用strsub提取每个单词的第一个字母(不要使用缩写(?

这可能很有用。它对前面没有断字的字符使用str_remove_all,并删除任何空格。

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

如果您想使用字符串分割方法,请尝试此

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:

library(purrr)
library(stringr)
acronym <- function(x) {
map_chr(str_split(x, ' '), function(y) str_c(str_sub(y, 1, 1), collapse = ''))
}

gsub选项

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

数据

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

IMHO最简单(也是最简洁(的选项如下所示:

abbreviate(x, minlength = 1)

相关内容

  • 没有找到相关文章

最新更新