有一个我认为应该很简单的问题,可能只是我对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"