nathania, seeing your answer below (), can I ask you a question?
Suppose you have data frames (or tibbles) named df_1, ..., df_n, as per the original question. Then, will this method merge the data frames consecutively, i.e. how do you ensure that merging will start with df_1, then df_2, then df_3, and so on?
And, a note: probably ls(pattern = "bad") does the same thing as names(.GlobalEnv) %>% str_subset('bad'). The pattern in the ordering is more understandable, as it is sorted by default.
That's an interesting question! I'm not sure how names(.GlobalEnv) is ordered. If the original grouping of observations is meaningful, you could modify the last lambda function to ~ pluck(.GlobalEnv, .x) %>% add_column(src_id = .x). As you suggested, ls(pattern = 'bad') is also a good option when objects have been named consistently.