Для цикла для подсчета различных листов Excel в нескольких книгах R - PullRequest
0 голосов
/ 27 ноября 2018

Этот код читает каждый лист в рабочей книге, а затем ищет слово и записывает файл, чтобы сказать «истина», если слово найдено.

Проблема в том, что мне нужно составить список, в котором указано, какие листы читать,Это работа, если рабочие книги не имеют разного количества листов.Таким образом, в этом случае код будет работать для рабочей книги с 60 листами, но не с 61.

isWordInTibble <- function(word, tibble) {
  any(unlist(
    sapply(1:ncol(tibble), 
           function(i) word %in% as.character(unlist(tibble[, i])))))
}

sheet_to_read <- c(1:60) ### **this part needs a for loop!!!!**

for(excelsheet in files){
 for (sheet in sheets_to_read) {
temp <- read_excel( path = excelsheet, sheet = sheet, col_names = FALSE)
if (isWordInTibble("Paludisme", temp)) {
 write.csv(temp, 
           file = gsub(".xlsx", 
                             paste0(substr(temp[-1, 1], 
                                           1,
                                           1), 
                                    gsub("sheet", "", sheet), 
                                        substr(tolower(as.character(isWordInTibble("Paludisme", temp))), 
                                           1,
                                           5),
                                    ".csv"), 
                             excelsheet)) } } } 

У меня есть этот код, который определяет, сколько листов существует;

numbs<- as.list(lapply(files,excel_sheets)) 
listed<-t(lapply(numbs, function(x) lapply(x,length)))

но не знаете, как добавить это в приведенный выше код.Я хочу, чтобы код сначала идентифицировал, сколько листов c(1:xxx), а затем запустил остальную часть кода на этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...