Make some reproducible data:
data1 <- data.frame(x=letters[1:3])
data2 <- data.frame(x=letters[2:4])
data3 <- data.frame(x=letters[5:7])
We can use rbindc uniquein the line and then evaluate:
data_names <- ls()[grepl("data\\d",ls())]
data_names <- paste(data_names,collapse=",")
myUnion <- paste0("unique(rbind(",data_names,"))")
eval(parse(text=myUnion))
EDIT:
Here is another better / simpler way do.call::
unique(do.call("rbind",lapply(objects(pattern="data\\d"),get)))
source
share