У меня есть коллекция из десятка файлов Excel, которые я читаю, со списком фреймов данных в R со следующим кодом:
data_path <- "path"
files <- dir(data_path, pattern = "*.xlsx")
data <- files %>%
map(~readWorkbook(file.path(data_path, .), sheet = "Results"))
С этим все без проблем. Проблема в том, что они мне нужны в одном и том же формате для дальнейшей манипуляции, и из-за неуниверсального расположения некоторые импортируются так:
X1 2016 2017 2018
y 12 12 12
, а другие как:
Result
y 2016 2017 2018
x 12 12 12
Причина в том, что некоторые файлы Excel пересылаются мне с дополнительной строкой вверху со строкой символа 'Results'
Теперь я могу исправить это с помощью прямой операции для каждого:
names(data) <- rbind(data[1,])
names(data)[1] <- "X1"
data <- data[-c(1),]
Но это выглядит довольно уродливым решением для взлома, которое приведет к проблемам с автоматизацией в будущем. Есть ли способ использовать функцию readWorkbook (), но указать, чтобы пропустить строки, если они содержат определенные значения?
например, возможно, что-то вроде:
if value equal to 'Result' {
skipRow()
}
Или для поиска кадров данных по строкам дати использовать их в качестве имен столбцов?