Hello,
If in each iteration i is a list, try removing the call to names().
Try, in the loop,
list2env(i, envir = .GlobalEnv)
The error message is telling that list2env's first argument must be a
named list and names(i) is an unnamed vector, it's i that's the named
list (you even changed its names in the previous instruction).
Hope this helps,
Rui Barradas
Às 18:38 de 03/10/2022, Kai Yang escreveu:
Hi Rui,
list2env(file1, envir = .GlobalEnv) is worked very well. Thank you.
But when I tried to put the sample code into for loop. I got error message:
for(i in filenames){
assign(i, import_list(paste0(i, ".xlsx", sep="")))
names(i) <- paste(i, names(i), sep = "_")
list2env(names(i), envir = .GlobalEnv)
}
Error in list2env(names(i), envir = .GlobalEnv) : first argument must be a
named list
It seems I cannot put names(i) into for loop, Could you please help me to debug
it?
Thank you,Kai On Monday, October 3, 2022 at 10:14:25 AM PDT, Rui Barradas
<ruipbarra...@sapo.pt> wrote:
Hello,
list2env(file1, envir = .GlobalEnv)
will create data.frames dx1, dx2, etc, in the global environment.
If you really need the names file1_dx1, file1_dx2, etc, you can first
change the names
names(file1) <- paste("file1", names(file1), sep = "_")
and then run list2env like above.
Hope this helps,
Rui Barradas
Às 16:51 de 03/10/2022, Kai Yang via R-help escreveu:
Hi R team,
I can use rio package to read excel file into R as a list. The excel file
content multiple sheets (30 - 40 data sheets). I can convert each data elements
into dataframe manually. I have multiple excel files with multiple data sheets.
I need to load them into R and do the comparison for same sheet name from
difference excel file. My current code is:
library(rio) setwd ("C:/temp")
filenames <- gsub("\\.xlsx$","", list.files(pattern="\\.xlsx$"))
for(i in filenames){
assign(i, import_list(paste0(i, ".xlsx", sep="")))
}
file1_dx1 <- file1[["dx1"]]
file1_dx2 <- file1[["dx2"]]
file1_dx3 <- file1[["dx3"]]
file2_dx1 <- file1[["dx1"]]
file2_dx2 <- file1[["dx2"]]
......
I hope the code can automatic converting the list (may have 30 - 40 lists) by
adding file name (such as: filename_sheetname) and put it in for loop
Thank you,
Kai
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.