Мне нужно очистить тысячи файлов Excel. Мне нужно прочитать лист с конкретным именем и очистить их. Большинство названий вкладок имеют что-то вроде «EQuote», но есть некоторые вкладки с названиями «E-Quote» или «EQuote» с некоторыми дополнительными словами. Однако название всех вкладок содержит «Цитата». Можете ли вы помочь мне прочитать вкладку Excel в фреймворке данных, когда имя вкладки содержит «Цитата».

Мой код похож на этот, но он может читать только лист Excel с именем «EQuote».

whole_data <- lapply(file.list, function(file){
    df= read_excel(file, sheet = 'EQuote')

    ....my clean steps....
})

Как изменить код для чтения листов, в названии которых содержится строка «Цитата».

0
Chen 23 Окт 2018 в 17:50

2 ответа

Лучший ответ

Вы можете перечислить все листы в файле Excel с помощью readxl::excel_sheets, а затем отфильтровать только имена, содержащие "Цитата" с помощью grepl() (установите ignore.case = TRUE, если в именах листов есть смешанные регистры).

sheets <- readxl::excel_sheets(file)
quote_sheets <- sheets[grepl("Quote", sheets, ignore.case = FALSE)]
0
Paul Campbell 23 Окт 2018 в 15:16

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

library(openxlsx)
Names <- getSheetNames('file_path')

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

Names_good <- Names[grepl('Quote', Names)]

И вы делаете цикл for

library(readxl)
for(i in 1:length(Names_good)){
df <- read_excel("file_path", sheet = paste0(Names_good[i])

....your clean steps and output....

}
0
Bogdan 23 Окт 2018 в 15:42
52951996