Я пытаюсь импортировать данные из электронной таблицы Excel, выбирая только набор листов (не все листы), а затем выполняя несколько шагов преобразования данных (поворачивайте больше и изменяйте тип данных).
Я получил это в 4 строках кода, и я теоретически мог бы скопировать и вставить этот блок для каждого листа (всего 8), но я хотел бы посмотреть, смогу ли я через все это сделать oop функция.
Шаги следующие:
1) Прочитать спецификации c листов и сохранить их в виде фреймов данных
2) Повернуть больше столбцов 2: 13
3) Измените новые значения столбца с типа даты Excel (цифра c) на фактическую дату
4) Измените дату в формате yearmon
Вот мой код для выполняя это для одного листа:
kerrie <- read_excel("report.xlsx", sheet = "KERRIE_DATA") # load Kerrie data sheet
kerrie <- pivot_longer(kerrie, 2:13, names_to = "month") # put months into rows
kerrie$month <- excel_numeric_to_date(as.numeric(kerrie$month), date_system = "modern") # change date data type
kerrie$month <- as.yearmon(kerrie$month) # turn into yearmon
Вот вектор со всеми именами листов
sheetNames <- c("KERRIE_DATA", "GAIL_DATA", "DANIELLE_DATA", "ISABELLE_DATA","ESTELLE_DATA", "CLARE_DATA", "JEN_DATA", "CHRIS_DATA")
И вот решение, которое я нашел для шага 1: оно проходит через Excel Excel и импортирует мои нужные листы, сохраняя их как фреймы данных
library(openxlsx)
a <- loadWorkbook("report.xlsx")
for(i in 1:length(sheetNames))
{
assign(sheetNames[i],readWorkbook(a,sheet = i))
}
Можете ли вы помочь мне выполнить шаги 2: 4 в функции / l oop, пожалуйста?