是否有一个R函数来重复创建对象?
我有一个数据框架(虽然我不认为我拥有的源对象的类型很重要),它有一个51个基因的列表,我希望获得路径信息(使用rWikiPathways,但同样,这也可以应用于更一般的问题) 我想用从rWikiPathways检索到的这51个基因的信息创建一个对象 我一直在尝试使用for循环、赋值和粘贴函数,但没有任何东西能像我希望的那样工作,因此我复制了这行代码51次:是否有一个R函数来重复创建对象?,r,loops,for-loop,object,R,Loops,For Loop,Object,我有一个数据框架(虽然我不认为我拥有的源对象的类型很重要),它有一个51个基因的列表,我希望获得路径信息(使用rWikiPathways,但同样,这也可以应用于更一般的问题) 我想用从rWikiPathways检索到的这51个基因的信息创建一个对象 我一直在尝试使用for循环、赋值和粘贴函数,但没有任何东西能像我希望的那样工作,因此我复制了这行代码51次: pathway.gene.1也许你需要list2env list2env(setNames(Vectorize(findPathwaysBy
pathway.gene.1也许你需要list2env
list2env(setNames(Vectorize(findPathwaysByXref)(genes$Encode.ID,"En"),paste0("pathway.gene.",1:51)),.GlobalEnv)
或
说明:
代码集合名(lapply(genes$Encode.ID,findPathwaysByXref,“En”),paste0(“pathway.gene.”,1:51)
为您提供从findPathwaysByXref
获得的命名值列表,而list2env
帮助您从列表到全局环境生成具有给定名称的对象。路径。gene我更喜欢使用帧列表,而不是环境中的单个、相同用途/结构化对象请看,从中您可以看到使用lappy
并将所有返回值捕获到单个列表中的价值。可以稍微改进上面的Mylappy
来命名条目(如果需要的话)从这里开始,无论你倾向于在一个pathway.gene.#
对象上做什么,你都可以用lappy(pathway.gene,function(pwg)…)
。谢谢!这与@ThomasIsCoding所说的非常相似,列出了一个列表,实际上列出了其中的每个对象。但是,接下来你又产生了一个新问题:关于pathway.gene.1
,pathway.gene.2
,pathway.gene.3
,…,pathway.gene.51
,在你的环境中,你是如何处理的它们?你可以把get
和assign
弄得一团糟,但要把它们放在一个列表中(跳过这个答案的list2env
部分)无论你下一步做什么,通常都会容易得多。嘿,这帮了大忙!真的是我一直在寻找的,因为现在我有一个列表列表,最终可以查看它来提取个人数据之类的。list2env所做的对于我可能需要它的东西来说确实有点太多了。非常感谢!@GregorThomas Yes,没错,为了方便起见,最好将所有这些对象都放在列表中,而不是放在全局环境中use@GTrentadue不客气!也许你可以跳过list2env
list2env(setNames(lapply(genes$Encode.ID, findPathwaysByXref, "En"),paste0("pathway.gene.",1:51),.GlobalEnv)