Использование параметра openxlsx startRow для выбора первой строки на основе содержимого файла

Я знаю, что параметр startRow в функции read.xlsx в openxlsx позволяет мне читать файл, начиная с указанной строки. Мне нужно загрузить 300 файлов xlsx, к сожалению, количество строк, которые я хочу пропустить, различается между файлами. Я всегда хочу, чтобы первая строка содержала слово CPT во втором столбце. Есть ли способ установить startRow в параметре сопоставления текста? На картинке ниже я бы установил для startRow значение 6, но в других случаях это 4 или 3.

введите здесь описание изображения


person MatthewR    schedule 14.12.2020    source источник


Ответы (1)


Может быть, стоит прочитать дважды (первый: прочитать несколько строк столбцов 1 и 2 и получить startRow).
Примечание. Я предположил, что ячейки, которые вы хотите пропустить, находятся в столбце 1 (по крайней мере).
И с for, sapply и т. д., вы можете сделать это со всеми файлами.

library(openxlsx)
tmp <- read.xlsx(file, colNames = FALSE, rows = 1:10, cols = 1:2, 
                 skipEmptyRows = FALSE)
st <- min(grep("CPT", tmp[[2]]))
d <- read.xlsx(file, startRow = st)
person cuttlefish44    schedule 14.12.2020