r - 在R中nchars的某个点之前提取所有“整个”字符元素?
问题描述
有一个我认为应该直截了当的问题,可能只是我对 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"
推荐阅读
- sql-server - MSSQL - 2TB 数据库 - 主组中的新文件
- c++ - 在 Qt6 中构建特定模块(即 QtMqtt)
- java - Open-liberty 如何设置 log4j2 配置?
- flutter - Flutter Newbie:修改 Textfield 值打破对 TextField 的关注
- swift - 带约束的字符串扩展
- airflow - Airflow:如何在不同的 dags 中使用相同的任务
- java - 使用流从列表生成地图
- c# - 如何为 System.Web.UI.HTMLControls HTMLForm 实现严格的 CSP?
- c# - 如何获取带有测试结果的标准 xUnit v2 XML 文件
- python - 在 Python 上从列表转换为字符串时出现意外行为