'Use object names as list names in R
Of course I could name the objects in my list all manually like this:
#create dfs
df1<-data.frame(a=sample(1:50,10),b=sample(1:50,10),c=sample(1:50,10))
df2<-data.frame(a=sample(1:50,9),b=sample(1:50,9),c=sample(1:50,9))
df3<-data.frame(a=sample(1:50,8),b=sample(1:50,8),c=sample(1:50,8))
#make them a list
list.1<-list(df1=df1,df2=df2,df3=df3)
But it makes a lot of work if I have let's say 50 objects with long names. So is there any way to automate this and make the names inside the list the same as the outside objects?
Solution 1:[1]
If you just want to name a list with names from the environment that share something, in this case 'df':
names(list.1) <- grep("df",ls(),value=TRUE)
If you want to push your environment into a list:
list.1 <- globalenv()
list.1 <- as.list(list.1)
To reverse the process see ?list2env
Solution 2:[2]
As noted in the possible duplicate questions' responses:
From the tidyverse, use tibble:lst:
https://tibble.tidyverse.org/reference/lst.html
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Brandon Bertelsen |
| Solution 2 | Scott Kaiser |
