如何编写R以从所有工作簿的每个工作表中获取数据

时间:2015-05-24 15:39:34

标签: r excel csv

我一直在努力从工作目录中的每个文件中获取每张工作表的数据。这是我的代码。 我想我设法将每个工作簿中的所有工作表加载到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)

0 个答案:

没有答案