r - 使用两个等长向量的元素之间的所有元素创建新向量
问题描述
我正在清除议会会议记录中的感叹和质问。我已将 PDF 转换为一个向量,其中每个元素都包含一行分钟。
使用正则表达式,我已经确定了感叹词开始的行的索引(它以“(”)开始,它在哪里结束(以“)”结束),从而产生两个等长的向量。
现在要确定要删除哪些线,我需要创建一个新向量,其中包含起点和终点,以及介于两者之间的所有线。
举个例子:
start <- c(1, 6, 9, 24)
end <- c(3, 7, 12, 27)
在这种情况下,得到的向量应该等价于:
interjections <- c(1,2,3,6,7,9,10,11,12,24,25,26,27)
或者:
interjection <- c(1:3, 6:7, 9:12, 24:27)
我确信有一种简单的方法可以做到这一点,但我无法让它正常工作。有人可以帮我吗?谢谢!
解决方案
使用Map
ormapply
应该适用于等长向量。如果它们的长度不相等,它将开始回收较短的那个。
start <- c(1, 6, 9, 24)
end <- c(3, 7, 12, 27)
interjection <- Map(`:`, start, end)
interjection
[[1]]
[1] 1 2 3
[[2]]
[1] 6 7
[[3]]
[1] 9 10 11 12
[[4]]
[1] 24 25 26 27
interjections <- unlist(interjection)
interjections
[1] 1 2 3 6 7 9 10 11 12 24 25 26 27
推荐阅读
- python - 如何在cmd中将python添加为命令?
- ocaml - 关键字 in 在 OCaml 中的工作原理
- notepad++ - 如何在 1 行中合并 2 行单独的行?
- r - 为数据帧的每一行提取情绪计算
- android - 使用 okhttp3 的谷歌云翻译 API
- apache - Apache httpd 2.4.34 在 SuSE 15 上无法接收信号 SIGTERM
- python - Python多处理更改了变量但没有更新?
- optimization - Webpack 停留在 94% 的资产优化上
- docker - docker-compose 在容器创建时插入一个额外的命令
- java - 与公共 API 的连接