首页 > 解决方案 > 是否有重复创建对象的 R 函数?

问题描述

我有一个数据框(尽管我不认为我拥有的源对象类型很重要),其中包含 51 个我想获取路径信息的基因列表(使用 rWikiPathways,但是,这可以是也适用于更普遍的问题)。

我想使用从 rWikiPathways 检索到的信息为这 51 个基因中的每一个创建一个对象。

我一直在尝试使用 for 循环、分配和粘贴函数,但没有什么能像我想要的那样真正起作用,所以我最终将这行代码复制了 51 次:

pathway.gene.1 <- findPathwaysByXref(genes$Encode.ID[1], "En")

pathway.gene.2 <- findPathwaysByXref(genes$Encode.ID[2], "En")

...

pathway.gene.51 <- findPathwaysByXref(genes$Encode.ID[51], "En")

请注意,“...gene.1”和“Encode.ID[1]”都从 1 变为 51。

必须有一种方法可以自动执行此操作...我是初学者,无法真正实现。

那里有任何提示吗?

Cheerio,圭多

标签: rloopsfor-loopobject

解决方案


也许你需要list2env

list2env(setNames(Vectorize(findPathwaysByXref)(genes$Encode.ID,"En"),paste0("pathway.gene.",1:51)),.GlobalEnv)

或者

list2env(setNames(lapply(genes$Encode.ID, findPathwaysByXref, "En"),paste0("pathway.gene.",1:51),.GlobalEnv)

说明:代码setNames(lapply(genes$Encode.ID, findPathwaysByXref, "En"),paste0("pathway.gene.",1:51)为您提供从 获取的值的命名列表findPathwaysByXref,并list2env帮助您从列表到全局环境中生成具有给定名称的对象。


推荐阅读