我有一个嵌套for loop
情况我循环通过几个练成工作表,应用多个功能来校正Excel表,生成从每个工作片一单个data.frame
,和写所有的这返回新的工作簿,其工作表的名称与原始工作簿相同。写多个数据帧使用用于环路
目前表格名称在新工作簿中是正确的,但data frames
不断地相互覆盖以便每张表具有相同的data frame
。我怎样才能让每个data frame
写入其各自的Excel表单?
library(xlsx)
library(agricolae)
#Read all worksheets in one file
read_excel_allsheets <- function(filename) {
sheets <- readxl::excel_sheets(filename)
x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X))
names(x) <- sheets
x
}
mysheets <- read_excel_allsheets("Loop_help.xls")`
for (i in 1:length(mysheets)){ #loop through sheets in workbook
file<-as.data.frame(mysheets[i])
for(i in 2:ncol(file)){ #loop through columns in sheets
if(var(file[,i]) > 0){ #exclude columns that are all zeros
#create data frame (df)
#do stuff
}
#dostuff
}
#do more stuff
n<-excel_sheets("Loop_help.xls") #sheet names
for (i in 1:length(mysheets)) {#write new sheets to excel
if (i == 1)
write.xlsx(df, file="Loop.Help.xls", sheetName = n[i])
else write.xlsx(df, file="Loop.Help.xls", sheetName = n[i],
append = TRUE)
}
}
FYI:我知道这是一个非常奇怪的问题,但我很愿意把它清理干净,如果我能找到一个解决方案,以便它可以为其他用户有用在将来。现在我认为最好包括所有东西...... –
最后用'write.xlsx','objects'被创建在哪里? – Parfait
哎呀!先前尝试的残留。将尽快改变。 –