当对象名称未知时,如何动态删除R中的加载对象?

时间:2016-07-07 14:56:44

标签: r

我遇到的问题是我需要加载一个文件类型为.Rdata的对象,其中对象的名称是未知的。我可以在verbose = TRUE函数中使用load来获取名称。然后,我使用get重命名对象,以便标准化对象名称以进行进一步的处理步骤。现在我想通过调用此名称来删除原始对象。我无法得到rm来解决我的对象中记录名称的字符串:

a <- 1:10 # original data 'a'

z <- tempfile()
save(a, file=z) # saved to tempfile that doesn't contain the object name
rm(a) # then removed

obj.name <- load(z, verbose = TRUE) # 'a' is loaded and name recorded
b <- get(obj.name) # object is passed to 2nd object 'b' to standardize name

rm(list(get(obj.name))) # can't remove 'a' this way
# Error in rm(list(get(obj.name))) : 
#   ... must contain names or character strings

file.remove(z) # cleanup

1 个答案:

答案 0 :(得分:4)

只需使用rm(list = obj.name),因为list接受字符。