在R中的nchars的某个点之前提取所有“整个”字符元素?

问题描述 投票:1回答:1

有一个我认为应该直截了当的问题,可能就是我对grep()家族缺乏了解。

给定一组字符:

list <- c("the", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog")

我们知道sum(nchar(list))是35。

有没有办法在list对象中的一个给定位置之前提取所有“整个”字符元素,比如在10,15或20之前?

例如,如果我们做了10,它应该提取“the”和“quick”而不是“brown”(或其他任何list)。

为糟糕的头衔道歉 - 开放编辑!

r char extract
1个回答
2
投票

我们使用cumsum创建一个逻辑索引来对单词进行子集化

f1 <- function(vec, n) {
    vec[cumsum(nchar(vec)) < n]
  }

f1(list, 10)
#[1] "the"   "quick"

f1(list, 15)
#[1] "the"   "quick" "brown"
© www.soinside.com 2019 - 2024. All rights reserved.