问题
I have many data.tables in memory with names following a specific pattern (e.g.: RE_1, RE_2... CO_1, CO_2...). I want to bind them efficiently to get only two data.tables (RE and CO).
I tried:
RE <- rbindlist(ls(pattern = "RE"))
But I got the following error: "Error in rbindlist(ls(pattern = "RE")) : Input to rbindlist must be a list of data.tables".
Is there a way to make such a "usable" list of data.tables (or data frames)?
回答1:
Try
rbindlist(lapply(ls(pattern = "RE"),get))
Dont know if this is the most effective way but... It works.
ls(...)
returns a vector with the names of your data.tables. Not the data.tables themself. get
gets you the object by name.
You can also use
rbindlist(mget(ls(pattern = "RE")))
来源:https://stackoverflow.com/questions/30373307/list-data-tables-in-memory-and-combine-by-row-rbind