我有一个功能,我必须传递数据集。
loading <- function(dataset){
merchants <- load(dataset)
return(merchants)
}
但是当我使用加载函数时,它返回一个字符向量
loading("capital.Rdata")
"capital"
如何在函数内加载数据?
答案 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")
,x
和y
。
z
用法如下:
loading <- function(rdata_file)
{
e <- new.env()
load(rdata_file, envir = e)
e
}
答案 2 :(得分:0)
检查ls()
。您应该在加载"capital.Rdata"
时保存变量。您的函数返回您保存的变量名称,在这种情况下应该是capital
。