Как можно перебрать несколько листов Excel, чтобы применить простую очистку данных ко всем листам? - PullRequest
0 голосов
/ 14 мая 2019

Проблема, с которой я столкнулся, заключается в том, что мне нужно пройтись по нескольким листам Excel и применить к каждому листу простую очистку данных.Я могу сделать это вручную, однако это не эффективно.

read_excel_allsheets <- function(filename, tibble = FALSE) {
    sheets <- readxl::excel_sheets(filename)
    x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X))
    if(!tibble) x <- lapply(x, as.data.frame)
    names(x) <- sheets
    x
}


Mega_sheets = read_excel_allsheets("Dealer.xlsx")

Теперь с помощью приведенного выше кода я могу получить каждый лист Excel.Я хочу применить это:

colnames(Mega_sheets$`Feb - 18`) <- as.character(unlist(Mega_sheets$`Feb - 18`[6,]))
Mega_sheets$`Feb - 18` = Mega_sheets$`Feb - 18`[c(-1,-2,-3,-4,-5,-6), ]

Формат каждого листа точно такой же.

Как выполнить итерацию по каждому листу и применить к каждому листу пару строк очистки данных.

1 Ответ

0 голосов
/ 14 мая 2019

Вы можете сделать это, используя lapply, цикл for, purrr::map и т. Д. Вот пример с lapply, который должен работать:

Mega_sheets <- lapply(Mega_sheets, function(x){
  colnames(x) <- as.character(unlist(x[6,]))
  x[c(-1,-2,-3,-4,-5,-6), ]
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...