Я читаю данные из многих грязных PDF-файлов. Конечным результатом для каждого файла PDF является R-кадр данных с одной переменной, которую я называю text. Каждая строка кадра данных содержит текстовое представление одной строки исходной таблицы PDF. Элементы в каждой строке разделены знаком '|' персонаж. Один из них выглядит следующим образом: -
Общее количество подтвержденных случаев | 965
nd
Количество новых случаев 22 марта | 129
Общее количество госпитализированных | 277 | 28,7
Общее количество поступивших в отделения интенсивной терапии | 36 | 3.7
Общее количество смертей | 6
Коэффициент летальности (CFR) | 0.6
Общее количество вспышек или кластеров | 44
Общее количество случаев, связанных с кластеры | 243 | 25,2 Общее количество импортированных случаев | 201 | 20,8
Количество случаев в медработнике | 247 | 25,6
Средний возраст (годы) | 45
Возрастной диапазон (годы) | 0-95
и его можно воссоздать из этого: -
structure(list(Text = c("Total number of confirmed cases|965",
"nd", "Number of new cases 22 March|129", "Total number hospitalised|277|28.7",
"Total number admitted to ICU|36|3.7", "Total number of deaths|6",
"Case Fatality Ratio (CFR )|0.6", "Total number of outbreaks or clusters|44",
"Total number cases associated with clusters|243|25.2", "Total number of imported cases|201|20.8",
"Number of cases in HCW|247|25.6", "Median age (years)|45", "Age range (years)|0-95"
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-13L))
В данный момент я записываю это с помощью write_csv () и читаю обратно с помощью read_delim () вот так: -
write_csv(HPSC,'data/temp.csv')
HPSC <- read_delim('data/temp.csv', delim='|',
skip=1, na = c('-'),
col_names = c('Characteristic','Number','Pct')) %>%
mutate(Date = dmy('08.04.2020')) # In the real version, the date comes from elsewhere.
Сложно, но не очень сложно собрать многие из них вместе и получить мой конечный результат - по сути, информационный кадр с одной строкой в pdf.
Итак, все это работает хорошо. Мне нужна полная функциональность read_delim, потому что в противном случае я должен написать свой собственный код, чтобы идентифицировать разделители, пропускать строки и обрабатывать тот факт, что в каждой строке есть различное количество элементов. Я вполне доволен тем, что делаю, но я был смутно удивлен, что не мог просто передать один столбец данных в read_delim и заставить его делать свое дело.
Есть ли способ сделать это?