У меня есть эти коды ниже, которые извлекают первый столбец и ячейку третьей строки из каждого листа файла Excel, а затем объединяют их в один фрейм данных. У меня есть три файла, каждый из которых имеет 196,97 и 39 листов. Код работает, но он занимает слишком много времени.
Можете ли вы предложить лучший метод, который сокращает время выполнения Эта ссылка представляет собой пример исходного файла Excel. Я изменил его, чтобы задать этот вопрос.
Мой исходный код:
Team3Q<-getSheetNames("reportTeam_3_FultonCountySchools.xlsx")
#using For Loop to extract particular cells from each of the sheets in the Excel spreadsheet.
#I need to get the content of the first column and third row of each sheet.
for (j in 1:length(Team3Q)){
tmp<-read.xlsx("reportTeam_3_FultonCountySchools.xlsx",
sheet = j,
startRow = 3,
colNames = FALSE,
rowNames = FALSE,
detectDates = FALSE,
skipEmptyRows = TRUE,
skipEmptyCols = TRUE,
rows = c(3,4),
cols = c(1:2),
check.names = FALSE,
namedRegion = NULL,
na.strings = "NA",
fillMergedCells = FALSE
)
if (j==1) Team3Questions<-tmp else Team3Questions<-rbind(Team3Questions,tmp) #happend to previous
}
Team3<- cbind(Team3QNumber,Team3Questions)
Конечным результатом этого процесса является фрейм данных с двумя столбцами, где каждому номеру листа и «номеру вопроса» соответствуют на «вопросы», извлеченные из строки 1 столбца 3 каждого листа.
Выглядит так:
Question-Number Question
3.2.1 Question 1
3.2.2 Question 2
3.3.1 Question 3
3.3.2 Question 4
3.3.3 Question 5
3.4.1 Question 6
3.4.2 Question 7
3.4.3 Question 8
3.4.4 Question 9
3.4.5 Question 10