Предполагая, что ваши данные находятся в переменной с именем lines
(например, lines[1] = Round 36
- первая запись, lines[2] = 29.07. 2045
- следующая запись и т. Д.), Мы можем определить линии, разделить вектор на список и затем, наконец, свяжите его в data.frame
(при условии, что они имеют одинаковую длину, в противном случае вам придется выполнить некоторую ручную работу)
#Figure out where each round is.
rounds <- grepl('^Round', lines)
# Split it into seperate list. cumsum(rounds) will be an index for each group.
data <- split(lines, cumsum(rounds))
# Bind the data into a data.frame (assuming all have the same amount of data)
bound <- do.call(rbind, data)
Конечно, без воспроизводимого примера сложно проверить окончательный результат . Обратите внимание , что если данные о футболе не имеют равного количества данных между раундами или , если данные не поступают в том же порядке, результирующий data.frame
может не иметь немедленного смысла ( если в раунде 45 есть 7 элементов, а в раунде 46 - 4, в раунде 46 будут повторно использоваться элементы 1, 2 и 3 для заполнения недостающих значений), но это может упростить последующую очистку данных.