Другой подход может быть
library(dplyr)
df <- data.frame(text_col = strsplit(regmatches(txt, gregexpr('(%|\\d+,\\d+).*\\d+,\\d+', txt))[[1]],
split="\\d+,\\d+")[[1]],
num_col = regmatches(txt, gregexpr('\\d+,\\d+', txt))[[1]]) %>%
`colnames<-`(c(gsub("(^.*%).*", "\\1", txt), "Percentage"))
df
Вывод:
Erwerbstätige, die unter Zeitdruck und Arbeitsüberlastung leiden 2013 nach Berufsgruppen in % Percentage
1 % Führungskräfte 26,2
2 Techniker und gleichrangige nichttechnische Berufe 19,6
3 Akademische Berufe 18,3
4 Anlagen- und Maschinenbediener/-innen 15,4
5 Bürokräfte, kaufmännische Angestellte 13,4
6 Handwerks- und verwandte Berufe 12,9
7 Dienstleistungsberufe, Verkäufer/-innen 11,5
8 Insgesamt 15,3
9 Hilfsarbeitskräfte 7,3
Пример данных:
txt <- 'Erwerbstätige, die unter Zeitdruck und Arbeitsüberlastung leiden 2013 nach Berufsgruppen in % Führungskräfte 26,2 Techniker und gleichrangige nichttechnische Berufe 19,6 Akademische Berufe 18,3 Anlagen- und Maschinenbediener/-innen 15,4 Bürokräfte, kaufmännische Angestellte 13,4 Handwerks- und verwandte Berufe 12,9 Dienstleistungsberufe, Verkäufer/-innen 11,5 Insgesamt 15,3 Hilfsarbeitskräfte 7,3'