いくつか (70 以上) のワークシートを含むワークブックがあります。各ワークシートはステーション名です。各ワークシートには、削除したい # で始まるコメント行の数が異なります。次に、コメントが終了した時点からヘッダーを読み取り、それらを列名に割り当てます。32 ビット マシン/R/EXCEL で動作する RODBC を使用しようとしていましたが、64 ビット システムでは動作しません。以下は、RODBCを使用したものです。64 ビット システムで XLconnect などを使用して同じことを行うにはどうすればよいですか?
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()