我可以访问R数据对象吗';没有从文件中完全加载对象的属性?

我可以访问R数据对象吗';没有从文件中完全加载对象的属性?,r,attributes,persistence,data-objects,rdata,R,Attributes,Persistence,Data Objects,Rdata,情况是这样的。我的R代码应该检查应用程序缓存中现有的RData文件是否是最新的。我这样做是通过使用由特定数据元素的base64编码名称组成的名称来保存文件。但是,通过提交每个元素的特定SQL查询来检索与这些元素中的每个元素对应的数据,所有查询都在数据收集的配置文件中指定。因此,在检索元素的数据,但后来我不得不更改特定的SQL查询的情况下,数据不会被更新 为了处理这种情况,我决定使用对象的属性。我计划将每个数据对象对应的SQL查询(request)-base64-编码保存为对象的属性: # sav

情况是这样的。我的
R
代码应该检查应用程序缓存中现有的
RData
文件是否是最新的。我这样做是通过使用由特定数据元素的
base64
编码名称组成的名称来保存文件。但是,通过提交每个元素的特定SQL查询来检索与这些元素中的每个元素对应的数据,所有查询都在数据收集的配置文件中指定。因此,在检索元素的数据,但后来我不得不更改特定的SQL查询的情况下,数据不会被更新

为了处理这种情况,我决定使用对象的属性。我计划将每个数据对象对应的SQL查询(
request
)-
base64
-编码保存为对象的属性:

# save hash of the request's SQL query as data object's attribute,
# so that we can detect when configuration contains modified query
attr(data, "SQL") <- base64(request)
您不能“真的”这样做,但可以在我的
cgwtools::lsdata
函数中修改代码

function (fnam = ".Rdata") 
{
    x <- load(fnam, envir = environment())
    return(x)
}
函数(fnam=“.Rdata”)
{

x y;return(list(x=x,y=y))
并且您使用
load()
的方式存在问题。当您使用
save
/
load
时,您可以将多个对象“冻干”到一个.RData文件中。它们“嵌入”到当前环境中。因此,当您调用
load()
时,它不会返回对象,它返回一个字符向量,其中包含它还原的所有对象的名称。由于您没有提供
save()
代码,我不确定加载文件中实际包含什么,但如果它是一个名为
data
的变量,则只需调用

load(rdataFile)
不是


数据非常感谢您的回答!但是,我真的看不出我的方法(使用
加载
的方法)有什么本质区别。如果我理解正确,您的方法就是“把戏”是一个自动消失的环境,但是仅仅调用
rm
并使用它不是更容易吗?加载对象在任何情况下都会发生。奇怪的是,我使用
load
rm
的代码并没有按预期工作。您觉得有什么不正确的地方吗?使用
load
的风险之一是您会轰炸一个对象当前环境中有任何同名的现有对象--更不用说,
rm
中最轻微的输入错误都会杀死您想要保留的东西:-(-这就是为什么我使用这个函数以及它自己独特的环境。我很有信心,对于这个应用程序,我指定的名称将是唯一的,因为它们来自我维护的配置文件。但是,我理解你的观点,并感谢你的澄清。每天学习一些新的东西…顺便说一句,在研究n因此,在发布我的问题之前,我偶然发现了这篇相关且有趣的帖子,我希望您会喜欢阅读:。谢谢您的回答!我根据您的回答更新了我的问题以澄清问题(请参阅更新2)。正如您所看到的,我每个数据文件只加载一个对象,所以我不希望有任何冲突。但是,请看一看并发表评论,因为我对R对象操作(一般来说,R对象操作)没有太多经验。
function (fnam = ".Rdata") 
{
    x <- load(fnam, envir = environment())
    return(x)
}
load(rdataFile)
data <- load(rdataFile)