У меня есть книги с несколькими (70+) листами. Каждый рабочий лист представляет собой название станции. Каждый рабочий лист имеет разное количество строк комментариев, начинающихся с #, которые я хочу исключить, затем прочитайте заголовок, когда комментарии заканчиваются, и назначьте их именам столбцов. Я пытался использовать RODBC, который работает на 32-битной машине/R/EXCEL, но не работает на 64-битной системе. Ниже то, что у меня есть, используя RODBC. Как я могу сделать то же самое, используя XLconnect или что-то еще для 64-битной системы?
library(RODBC)
### Connect to Excel Files
# Input
excel.input <- odbcConnectExcel2007("Diurnal Data 2013.xlsx")
# Output
excel.output <- odbcConnectExcel("Diurnal Data 2013 edit.xls", readOnly=FALSE)
### Pull and Format Data
#extract and keep Stations sheet
Stations <-sqlFetch(excel.input, "Stations", na.strings=c("","-"))
sqlSave(excel.output,Stations, rownames = FALSE)
##Loop through data pull and formatting for each site id
sites <- gsub("[[:punct:]]","",sqlTables(excel.input)[,"TABLE_NAME"])
len <- length(sites)
for(i in 2:len) { # Omit the 1st worksheet
sheet <- sites[i]
data <- sqlFetch(excel.input, sheet, na.strings=c("","-")) ##retrieve data from each worksheet ith sheet
data1 <- subset(data, !grepl("^#", data[,1])) ## Removes rows starting with #(hashtag) on ith sheet
# Rename to appropriate column headers
A <- t(data1[1,])
names(data1)<- A[,1]
# Remove unwanted rows
data2 <- data1[c(-1,-2),]
head(data2)
# Write new ith worksheet into output file.
sqlSave(excel.output,data2, tablename=sheet, rownames = FALSE)
# End loop after running through all sheets.
}
###Close connections to Excel files before opening
odbcCloseAll()
sessionInfo()
вывод должен быть включен. - person IRTFM   schedule 02.05.2014