【发布时间】:2019-03-15 19:41:29
【问题描述】:
我已尝试寻找此问题的答案,但遇到了麻烦,因为我不确定我是否在寻找正确的东西。基本上我想在 R 中创建一个循环来创建多个对象,每个对象都来自不同的对象。例如,假设我有 50 个现有对象(矩阵、数据框、图形等),它们的名称都相似(table1、table2...table50)。现在我想创建 50 个新对象,比如说 graph1...graph50。我遇到了循环问题,因为我不知道如何将名称作为字符串处理。我已经尝试过 assign 函数,但它在 assignment 参数中不够动态。我基本上想要这样的东西:
for (i in list(table names)){
graph "i" <- as.network(table "i")
}
我还希望将对象分配为自身的某些功能,即图“i”
此外,如果有更有效的方法,我愿意接受。这似乎是一项简单的任务,但我无法弄清楚。现在,我实际上只是将 excel 中的语句连接起来并粘贴到 R 中,因此不会花费太长时间,但这很痛苦。谢谢。
【问题讨论】:
-
你最初是如何创建所有这些对象的?创建相关对象以在列表中创建它们时要好得多。在你的全局环境中有一堆变量只是一个数字后缀是一个坏主意。一旦列表中有数据,您就可以轻松地将您喜欢的任何函数映射到该列表中。
-
如果您已经有一个名为
list_of_tables的表列表,那么您将使用list_of_graphs = lapply(list_of_tables, as.network)创建图表列表。其他事情也可以类似地工作。 -
是的,非常感谢。我显然只是不知道如何正确使用列表,但现在一切都超级简单和干净,谢谢。