Создать новый вектор со всеми элементами между элементами двух векторов равной длины - PullRequest
0 голосов
/ 09 мая 2019

Я убираю междометия и щепки из протоколов парламентских сессий.Я преобразовал 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 голосов
/ 09 мая 2019

Использование Map или mapply должно работать для векторов равной длины.Если они не равны по длине, они начнут перерабатывать более короткий.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...