如何使用同名的字符变量调用对象

我试图在R中编写一个函数,以类似的方式对一些文件进行批处理分析。这些文件属于类ExpressionSetIllumina..我可以创建一个包含目录中所有文件的名称的字符(字符串)向量,并加载其中的每个文件:

list = list.files()for (i in list[1]) {    
  load(i)}

这将正确加载文件。

> ls()[1] "i"                    
"list"                 
"SSD.BA.vsn"> class(SSD.BA.vsn)[1] 
"ExpressionSetIllumina"attr(,"package")[1] "beadarray"

我现在想做的是用i(字符串)"SSD.BA.vsn")分配对象SSD.BA.vsn到一个新的对象数据,以便:

>data = SomeFunction(i)>class(data)[1] "ExpressionSetIllumina"attr(,"package")[1] "beadarray"

但是,无论我到目前为止尝试了什么,都只是将数据作为一个字符向量返回,其值与我的值相同,或者根本不起作用。所以我想知道是否有一个函数能帮到我,或者我是否需要用别的方法去做。

我将对象或变量的名称作为字符串存储在字符向量中。如何使用字符串对象名对象进行操作?


慕的地10843
浏览 525回答 1
1回答

莫回无

我想你想get.data&nbsp;<-&nbsp;get(i)也就是说,一旦你开始使用get(以及它的对应方,assign),您通常会得到可怕的不可读代码。对于像您这样的批处理分析,通常最好将所有数据读入数据帧列表,然后随意使用lapply..类似于:data_files&nbsp;<-&nbsp;list.files()all_vars&nbsp;<-&nbsp;lapply(data_files,&nbsp;function(file){ &nbsp;&nbsp;vars_loaded&nbsp;<-&nbsp;load(file) &nbsp;&nbsp;mget(vars_loaded,&nbsp;parent.frame())})mget的版本是get它同时检索多个变量。在这里,它用于检索调用LOAD加载的所有内容。现在您有了一个列表:顶级列表与文件相关,较低级别的列表包含从该文件加载的变量。
打开App,查看更多内容
随时随地看视频慕课网APP