r 获取向量中每个单词的第一个、前两个、前三个字母的列表

r get list of first, first two, first three letters of each word in a vector

我想将向量的每个元素转换为它们的第一个、前两个等字母,然后再次收到一个包含结果的向量:

示例:

vector2 <- c("nike", "adidas")

结果:

> term2
[1]  "n"    "ni"   "nik"  "nike" "a"    "ad"   "adi"  "adid"  "adida"  "adidas"

这仅适用于耐克:

vector1 <- c("nike")
  n <- nchar(vector1)
    for(i in 1:n)
     {
      term2[i] = substr(vector1, 1,i)
     }

但是

  vector2 <- c("nike", "adidas")

这是一种在 base R 中使用 mapplysapply 的方法 -

v <- c("nike", "adidas")

unlist(
  mapply(function(x, y) {
    sapply(1:y, function(a) substr(x, 1, a))
  }, v, nchar(v))
)

nike1    nike2    nike3    nike4  adidas1  adidas2  adidas3  adidas4  adidas5  adidas6 
 "n"     "ni"    "nik"   "nike"      "a"     "ad"    "adi"   "adid"   "adida"  "adidas" 
substring(rep(vector2, nchar(vector2)), 1, sequence(nchar(vector2)))
# [1] "n"      "ni"     "nik"    "nike"   "a"      "ad"     "adi"    "adid"   "adida" 
#[10] "adidas"