list data.tables in memory and combine by row (rbind)

老子叫甜甜 提交于 2020-07-30 10:23:29

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!