地块中的长串并不总是有吸引力.在R中缩写首字母缩写词的最短方法是什么?例如,"Hello world"到"HW",并且最好具有唯一的首字母缩略词.
有功能abbreviate
,但它只删除短语中的一些字母,而不是取每个单词的第一个字母.
一个简单的方法是使用的组合strsplit
,substr
和make.unique
.
这是一个可以编写的示例函数:
makeInitials <- function(charVec) { make.unique(vapply(strsplit(toupper(charVec), " "), function(x) paste(substr(x, 1, 1), collapse = ""), vector("character", 1L))) }
测试出来:
X <- c("Hello World", "Home Work", "holidays with children", "Hello Europe") makeInitials(X) # [1] "HW" "HW.1" "HWC" "HE"
也就是说abbreviate
,如果你使用它的一些论点,我认为这应该足够了:
abbreviate(X, minlength=1) # Hello World Home Work holidays with children Hello Europe # "HlW" "HmW" "hwc" "HE"