Posso acessar os atributos dos objetos de dados R sem carregar totalmente os objetos do arquivo?

Aqui está a situação. MinhasR código deve verificar se existeRData arquivos emcache do aplicativo estão atualizados. Eu faço isso salvando os arquivos com nomes que consistem embase64nomes codificados de um elemento de dados específico. No entanto, os dados correspondentes a cada um desses elementos estão sendo recuperados enviando uma consulta SQL específica por elemento, todos especificados na coleção de dados.arquivo de configuração. Portanto, em uma situação em que os dados de um elemento são recuperados, mas depois tive que alterar essa consulta SQL específica, os dados não estão sendo atualizados.

Para lidar com essa situação, eu decidi usarR atributos dos objetos. Pretendo salvar a consulta SQL correspondente de cada objeto de dados (request) -base64-codificado - como o atributo do objeto:

# 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)

Então, quando eu precisar verificar se o SQL foi alterado, gostaria de recuperar o atributo correspondente do objeto e compará-lo com o hash da consulta SQL atual. Se eles corresponderem - a consulta não foi alterada e eu pulo o processamento dessa solicitação de dados, se eles não corresponderem - a consulta foi alterada e prosseguimos com o processamento da solicitação:

# check if the archive file has already been processed
if (DEBUG) {message("Processing request \"", request, "\" ...")}
if (file.exists(rdataFile)) {
  # now check if request's SQL query hasn't been modified
  data <- load(rdataFile)
  if (identical(base64(request), attr(data, "SQL"))) {
    skipped <<- skipped + 1
    if (DEBUG) {message("Processing skipped: .Rdata file found.\n")}
    return (invisible())
  }
  rm(data)
}

Minha pergunta é se é possível ler / acessar os atributos do objetosem carregar totalmente o objeto do arquivo. Em outras palavras, posso evitar oload() erm() no código acima?

Seu conselho é muito apreciado!

UPDATE: Pergunta adicional: O que há de errado com o meu código, pois ele processa mesmo quando não deveria - caso todas as informações estejam atualizadas (sem alterações no cache e no arquivo de configuração)?

ATUALIZAÇÃO 2 (código adicional de acordo com a resposta de @ MrFlick):

# construct name from data source prefix and data ID (see config. file),
# so that corresponding data object (usually, data frame) will be saved
# later under that name via save()
dataName <- paste(dsPrefix, "data", indicator, sep = ".")

assign(dataName, srdaGetData())
data <- as.name(dataName)

# 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)

# save current data frame to RData file
save(list = dataName, file = rdataFile)
# alternatively, use do.call() as in "getFLOSSmoleDataXML.R"

# clean up
rm(data)

questionAnswers(2)

yourAnswerToTheQuestion