有一个我认为应该直截了当的问题,可能就是我对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
)。
为糟糕的头衔道歉 - 开放编辑!
我们使用cumsum
创建一个逻辑索引来对单词进行子集化
f1 <- function(vec, n) {
vec[cumsum(nchar(vec)) < n]
}
f1(list, 10)
#[1] "the" "quick"
f1(list, 15)
#[1] "the" "quick" "brown"