Dear All,

I am using WriteXLS to write tables with multiple sheets with the command:

WriteXLS("tables", ExcelFileName = fileName, SheetNames = tableList, perl = 
"perl",
           verbose = FALSE, Encoding = c("UTF-8", "latin1"),
           row.names = TRUE, col.names = TRUE,
           AdjWidth = TRUE, AutoFilter = FALSE, BoldHeaderRow = FALSE,
           FreezeRow = 0, FreezeCol = 0,
           envir = parent.frame())


...where "tables" is the name of a list of data.frames which are the tables to 
go into my sheets. I am having no problem running my code unless it is within a 
function in which case I get the error:

"Error in get(as.character(x), envir = envir) : object 'tables' not found"

I have checked that there is not an issue with scope using these two lines 
within my function immediately before calling the WriteXLS function:

print(class(tables))
flush.console()
[1] "list"


At least I would have thought this would have ruled out any scope-related 
issues. Has anyone else had this problem or have any ideas why it might be 
happening?

Thanks,

Scott


PS here is the function in full:

makeTables <- function(design, designInfo, oldMatrix, matrix, annot, tableList)
{
rownames(design) <- designInfo[,1]

fit <- lmFit(matrix, design)
fit <- eBayes(fit)

tables<-list()

        for (i in 1:length(tableList))
        {
        table <- makeTable(oldMatrix, matrix, annot, fit, tableList[i])
        print(paste(tableList[i], "=", sep=""))
        print(table)
        tables[[i]] <- table
        }

#Saving bit (set to FALSE if not using)
saveIt <- TRUE

        if(saveIt)
        {
        fileName <- 
paste0("~",paste(colnames(design)[2:length(colnames(design))], collapse = 
"+"),".xls")

        print(paste("sheetnames=",length(tableList),

        print(class(tables))
        flush.console()

        WriteXLS("tables", ExcelFileName = fileName, SheetNames = tableList, 
perl = "perl",
           verbose = FALSE, Encoding = c("UTF-8", "latin1"),
           row.names = TRUE, col.names = TRUE,
           AdjWidth = TRUE, AutoFilter = FALSE, BoldHeaderRow = FALSE,
           FreezeRow = 0, FreezeCol = 0,
           envir = parent.frame())
        }
}

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to