【问题标题】:r get list of first, first two, first three letters of each word in a vectorr 获取向量中每个单词的第一个、前两个、前三个字母的列表
【发布时间】:2019-08-29 23:13:53
【问题描述】:

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

例子:

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")

【问题讨论】:

    标签: r list substr


    【解决方案1】:
    substring(rep(vector2, nchar(vector2)), 1, sequence(nchar(vector2)))
    # [1] "n"      "ni"     "nik"    "nike"   "a"      "ad"     "adi"    "adid"   "adida" 
    #[10] "adidas"
    

    【讨论】:

      【解决方案2】:

      这是一种在基础 R 中使用 mapply 和 sapply 的方法 -

      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" 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-22
        • 1970-01-01
        相关资源
        最近更新 更多