For example: Three R workspaces A.RData
, B.RData
and C.RData
.
- In
A.RData
: A list objectlist.example <- list(1,2)
- In
B.RData
: The same name list objectlist.example <- list(NULL,NULL,3)
- In
C.RData
: The same name list objectlist.example <- list(NULL,NULL,NULL,4)
What i want to get in a new workspace is an object list.new.example
printed as:
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4
I have tried
file.full <- list.files(directory, full.names = TRUE)
list.new.example <- list()
for (i in 1:3) {
load(file.full[i])
list.new.example <- c(list.new.example, list.example)
}
print(list.new.example)
but it's not what i wanted. NULL
is filling. So thanks.
This kind of problem can be solved by loading each file in a separate environment. Then it's just a matter of extracting the element named
list.example
from each of them and combine in a list.Environments belong to the more advanced features of R that relatively few users are familiar with. They are however quite simple to understand and very useful, just think of them as unordered sets of named objects, that can be manipulated in same ways as an ordinary list. Like this