在函数内加载Rdata文件

时间:2015-08-18 06:08:49

标签: r

我有一个功能,我必须传递数据集。

loading <- function(dataset){
merchants <- load(dataset)
return(merchants)
}

但是当我使用加载函数时,它返回一个字符向量

loading("capital.Rdata")
"capital"

如何在函数内加载数据?

3 个答案:

答案 0 :(得分:2)

load()命令不返回存储在RData文件中的对象。相反,它返回一个字符向量,列出从Rdata文件加载的所有对象的名称。您的对象显然被称为capital,因此您可以执行以下操作:

loading <- function(dataset){
   merchants <- load(dataset)
   return(get(merchants))
}

您将get()函数传递给字符串,它将返回该名称的对象。

请注意,如果RData文件中保存了多个对象,则无法使用此功能。检查是否存在多个对象,并可能返回所有对象,留给读者练习。

答案 1 :(得分:1)

使用envir的{​​{1}}参数来控制加载变量的存储位置。

保存一些变量(以使其可重现):

load

定义你的加载功能。这将返回包含x <- 1:10 y <- runif(10) z <- letters save(x, y, z, file = "test.RData") xy

的环境
z

用法如下:

loading <- function(rdata_file)
{
  e <- new.env()
  load(rdata_file, envir = e)
  e
}

答案 2 :(得分:0)

检查ls()。您应该在加载"capital.Rdata"时保存变量。您的函数返回您保存的变量名称,在这种情况下应该是capital