Very helpful Thanks, Naresh
Sent from my iPhone > On May 19, 2026, at 11:34 AM, Rui Barradas <[email protected]> wrote: > > Às 11:48 de 19/05/2026, Naresh Gurbuxani escreveu: >> I want to stack several dataframes using their names as strings. >> df1 <- data.frame(name = "normal", x = rnorm(5)) >> df2 <- data.frame(name = "uniform", x = runif(5)) >> df3 <- data.frame(name = "binomial", x = rbinom(5, 2, 0.5)) >> mynames <- c("df1", "df2", "df3") >> newdf <- some_function(mynames) >> # Desired result >> newdf <- do.call(rbind, list(df1, df2, df3)) >> How can this be done? >> Thanks, >> Naresh >> ______________________________________________ >> [email protected] mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > Hello, > > Something like this? > > > > fun <- function(df_names, pattern, envir = .GlobalEnv) { > if(missing(df_names)) { > if(missing(pattern)) { > obj_names <- ls(envir = envir) > df_list <- Filter(\(x) is(x, "data.frame"), mget(obj_names, envir = > envir)) > } else { > df_names <- ls(pattern = pattern, envir = envir) > df_list <- mget(df_names, envir = envir) > } > } else df_list <- mget(df_names, envir = envir) > res <- do.call(rbind, df_list) > row.names(res) <- NULL > res > } > > df1 <- data.frame(name = "normal", x = rnorm(5)) > df2 <- data.frame(name = "uniform", x = runif(5)) > df3 <- data.frame(name = "binomial", x = rbinom(5, 2, 0.5)) > mynames <- c("df1", "df2", "df3") > > fun() > fun(mynames) > fun(pattern = "df") > > > Hope this helps, > > Rui Barradas > ______________________________________________ [email protected] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

