我一直在努力从工作目录中的每个文件中获取每张工作表的数据。这是我的代码。 我想我设法将每个工作簿中的所有工作表加载到R中,现在它是编写data.frame并导出到csv的部分。
事实证明,只有LAST WORKBOOK R中每张工作表中的数据都是用.csv编写的,而不是每个工作簿中的每个工作表,而只是最后的工作簿。 这个问题必须从我在DF [ws,]< -c(shts1 [ws],P)中的部分出现。 但据我检查,f< - length(shts1)应该是每个workboook的工作表数量的总和,但f只是文件夹中最后一个工作簿的工作表数。
有人可以伸出援助之手吗?
谢谢
library(XLConnect)
setwd("D:\\R test\\")
files <- (Sys.glob("*.xls"))
#for (i in 1:length(filenames)){
for (i in 1:length(files)){
wb1 <- loadWorkbook(file.path(files[i],sep=""))
shts1 <- getSheets(wb1)
#shts1
f<- length(shts1)
DF <- data.frame(txt=rep("", f),num=rep(NA, f),stringsAsFactors=FALSE)
for (ws in 1:f) {
dat <- readWorksheet(wb1, ws)
B<-as.data.frame.matrix(dat)
P<-B[which(apply(B, 1, function(x) any(grepl("P", x)))),which(apply(B, 2, function(x) any(grepl("P", x))))+4]
DF[ws, ] <-c(shts1[ws],P)
}
}
write.csv(DF, "prices.csv", row.names=FALSE)