converting a vector of character strings to separate objects
I am trying to automate the way i read my tables. I have an Excel sheet I'm reading using openxlsx package. The sheet contains over 30 sheets, i would like to save each of them as separate objects.
my workflow for now is as such:
wb <- loadWorkbook(xlsxFile = "Output/Up_Down_Regulated_Gene_Lists.xlsx")
NAMES <- gsub(pattern = " ", replacement = "_", x = names(wb))
[1] "KO1_vs._WT_up" "KO2_vs._WT_down" "KO3_vs._WT_up" "KO1_vs._WT_down" "KO2_vs._WT_up" ...
for (i in 2:length(names(wb)) ){
tmp <- read.xlsx(wb, sheet = i)
... Here I would like to have each sheet read in and sacved as a separate data.frame.
}
Is there a way to read for each sheet the name from names(wb) and convert it to a name for the object?
something like this
The object KO1_vs._WT_up will save the first sheet with the same name
The object KO2_vs._WT_down will save the second sheet.
etc.
Any ideas?
thanks
• 911 views
•
link
1 answer
Try:
myDfList <- lapply(names(wb), function(i) read.xlsx(wb, i))
I prefer to keep all dataframes in a list, but if we wish to clutter our environment with zillion dataframes then:
list2env(myDfList, envir = .GlobalEnv)
• 0 views
•
link
Log in to answer this question.