使用两个等长向量的元素之间的所有元素创建新向量

时间:2019-05-09 16:54:33

标签: r

我正在从议会会议纪要中清除烦恼和and琐。我已将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)

我敢肯定有一种简单的方法可以做到这一点,但我只是无法使其正常工作。有人可以帮我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

对于相等长度的向量,使用Mapmapply应该有效。如果长度不相等,则会开始回收较短的长度。

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