如何将函数 substr 应用于字符串的每个元素

How to apply the function substr to each element of a string

我有这串字

string<-c("chair-desk-tree-table-computer-mousse")

我想检索每个单词的前三个字符并将它们存储在这样的对象中:

newstring==> [1] "cha-des-tre-tab-com-mou"
> newstring <- substring( strsplit(string, "-")[[1]], 1, 3)
> newstring <- paste0(newstring, collapse = "-")
> newstring
[1] "cha-des-tre-tab-com-mou"

使用 gsub 和正则表达式环视来匹配 3 个小写字母之前的一个或多个小写字母

gsub("(?<=\b[a-z]{3})[a-z]+", "", string, perl = TRUE)
[1] "cha-des-tre-tab-com-mou"

使用编辑后的字符串

> string <- c(string, "K29-E665-I1190")
> gsub("(?<=\b[[:alnum:]]{3})[[:alnum:]]+", "", string, perl = TRUE)
[1] "cha-des-tre-tab-com-mou" "K29-E66-I11"