在 R 中 nchar 的某个点之前提取所有'whole'字符元素?



有一个我认为应该很简单的问题,可能只是我对grep()家庭缺乏知识。

给定一组字符:

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

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

是否可以在list对象中的给定位置(在10、15或20之前)提取所有"整个"字符元素?

例如,如果我们做了10个,则应提取"one_answers"快速"但不是"棕色"(或list的其余任何一个)。

对差的标题表示歉意 - 对编辑开放!

我们使用cumsum创建一个逻辑索引,以子集

f1 <- function(vec, n) {
    vec[cumsum(nchar(vec)) < n]
  }
f1(list, 10)
#[1] "the"   "quick"
f1(list, 15)
#[1] "the"   "quick" "brown"

最新更新