r - R循环从同样多的现有对象创建多个对象
问题描述
我已经尝试寻找这个问题的答案,但我遇到了麻烦,因为我不确定我什至在寻找正确的东西。基本上我想在 R 中创建一个循环来创建多个对象,每个对象都来自不同的对象。例如,假设我有 50 个现有对象(矩阵、数据框、图形等),它们的名称都相似(table1、table2...table50)。现在我想创建 50 个新对象,比如说 graph1...graph50。我遇到了循环问题,因为我不知道如何将名称作为字符串处理。我已经尝试过 assign 函数,但它在 assignment 参数中不够动态。我基本上想要这样的东西:
for (i in list(table names)){
graph "i" <- as.network(table "i")
}
我还希望将对象分配为自身的某些功能,即图形“i”<-somefunction(graph“i”)等...
此外,如果有更有效的方法,我愿意接受。这似乎是一项简单的任务,但我无法弄清楚。现在,我实际上只是将 excel 中的语句连接起来并粘贴到 R 中,因此不会花费太长时间,但这很痛苦。谢谢你。
解决方案
我认为你可以有一个嵌套循环来做你正在寻找的事情;您可以对输入列表中的每个对象应用您想要的任何转换,并将结果存储在具有相同对象名称的新列表中。
in_list <- list(table1 = iris,
table2 = EuStockMarkets)
out_list <- list()
for(i in 1:length(in_list)){
for(j in colnames(in_list[[i]])){
out_list[[ gsub("table", "graph", names(in_list)[i]) ]][[j]] <- summary(in_list[[i]][,j])
}
}
希望这可以帮助!
推荐阅读
- azure-devops-self-hosted-agent - Azure DevOps 服务 - 自托管代理已脱机
- active-directory - 活动目录。检索成员 distinctName 时发生以下异常:发生操作错误
- ethereum - Secp256k1 solidity 合约组装错误:SyntaxError: loop flag outdated。请考虑改用“switch”、“if”或“for”语句
- firebase - 错误:运行 firebase login 命令时发生意外错误
- vue.js - 使用复选框项更新状态对象 - Vue.js
- python - DataFrameGroupBy 通过 apply(lambda x: x) 到数据帧
- python - 在循环期间无法搜索和放入数组
- javascript - 输入指示后执行代码
- docker - 使用 docker compose 3.8 时出现“不支持版本”错误
- javascript - 尝试更改图像背景时,在“url('')”内使用变量的正确语法是什么?Javascript