2012-09-23 22 views
0

我想在R中使用data()加载数据文件,数据集的名称存储在一个变量中。没有存储在变量的数据集的名字这样做很简单:如何装载和使用名称在变量中的R的数据文件?

> library(ChIPpeakAnno) 
> data(TSS.human.NCBI36) 
> # Use data: 
> TSS.human.NCBI36 # Prints out contents of data set 

当数据集名被存储在一个变量,但是,我不知道如何完成相同的任务。

> library(ChIPpeakAnno) 
> assembly <- 'TSS.human.NCBI36' 
> data(list=c(assembly)) # Hackish way of loading the data from a variable 
> # Now I wish to access the data, but I don't know how. 

data()的返回值只是数据集的名称加载。我试图加载的数据文件位于~/R/2.15/library/ChIPpeakAnno/data/TSS.human.NCBI36.rda - 我不相信有任何Bioconductor专用于它。

谢谢!

+0

我不明白是什么问题。使用第二种方法,你不能以完全相同的方式打印出数据集吗? (另外,这不是从角色矢量中加载数据集的“黑客”方式;它是_correct_方式。) – joran

+0

感谢您的建议。乔兰,我应该更清楚地说明我必须以编程方式访问数据 - 直到运行时我才知道数据集的名称。正如Dason所说,使用'get()'正是我所需要的。 –

回答

4

如果你想知道如何以编程方式访问数据,当你只有一个字符向量中的对象名称时,你可以使用get

library(ChIPpeakAnno) 
assembly <- 'TSS.human.NCBI36' 
data(list=c(assembly)) 

# Now store the data into 'dat' 
dat <- get(assembly) 
# Now you can use 'dat' anywhere you would normally use TSS.human.NCBI36 
head(start(dat)) 
#[1] 1873 4274 20229 24417 24417 42912 
head(start(TSS.human.NCBI36)) 
#[1] 1873 4274 20229 24417 24417 42912 
+0

谢谢! 'get()'正是我所需要的。 –

相关问题