【问题标题】:How to load and use data file with R whose name is in a variable?如何使用名称在变量中的 R 加载和使用数据文件?
【发布时间】:2012-09-23 00:17:34
【问题描述】:

我想使用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 的内容。

谢谢!

【问题讨论】:

  • 我不明白问题出在哪里。使用你的第二种方法,你能不能用完全相同的方式打印出数据集? (另外,这不是从字符向量加载数据集的“hackish”方式;这是正确方式。)
  • 感谢您的建议。 joran,我应该更清楚地说明我必须以编程方式访问数据——直到运行时我才知道数据集的名称。正如 Dason 建议的那样,使用 get() 正是我所需要的。

标签: r bioconductor


【解决方案1】:

如果您想弄清楚如何在字符向量中只包含对象名称时以编程方式访问数据,您可以使用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

【讨论】:

  • 谢谢! get() 正是我所需要的。
猜你喜欢
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 2017-10-10
相关资源
最近更新 更多