2011-01-28 8 views

Respuesta

4
attach(file);ls(pos=2);detach(pos=2) 

Eso lo hará. Probablemente. #untested

+0

Se puede omitir 'pos = 2' 'en detach', ya que' quitar() 'separa segundo elemento de ruta de búsqueda por defecto. – aL3xa

+1

Probé esa sugerencia de Ripley que encontré en el archivo y no la envié, ya que _did_ cargué un conjunto de datos bastante grande que usé como ejemplo. –

+0

@D ¿Qué solución? URL? – Spacedman

6

No creo que puedas hacer eso sin cargar el objeto.

Una solución podría ser guardar los objetos R con un contenedor en save, cuya función salvaría el objeto Y la estructura del objeto en un archivo Rdata especial. Más tarde, puede cargar el archivo binario especial con un contenedor en load, donde puede especificar que solo se muestre la estructura de los datos.

He hecho algo como esto en un paquete muy básico, llamado saves, se puede encontrar en CRAN.


Actualización: Hice una solución sencilla metadatos muy

save.ls <- function(x, file) { 
    save(list=x, file=file) 
    l <- ls() 
    save(l, file=paste(file, 'ls', sep='')) 
} 
load.ls <- function(file) { 
    attach(paste(file, 'ls', sep='')); 
    return(l) 
    detach(pos=2) 
} 

Guardar con save.ls en lugar de save y la carga con load.ls para probar. La metainformación se guarda en un archivo separado (que termina en "ls"), pero el mecanismo podría mejorarse fácilmente, p. hacer un archivo tar (como hago en el paquete vinculado anteriormente) del objeto Rdata y el archivo que contiene los metadatos.

+0

Una solución de metadatos tiene sentido. No sé frijoles sobre archivos de datos R y pensé que podrían tener metadatos internos –

+0

@JD Long: esa es la única forma en que podría imaginarme. Inventé un ejemplo primitivo en mi respuesta anterior para mostrar lo que quise decir. Sin embargo, podría implementarse fácilmente de una manera mucho más ordenada, por lo que esta función de demostración definitivamente no está lista para el uso de producción :) – daroczig

+3

La solución de metadatos en R ya existe y se llama llamada carga lenta - ver http://stackoverflow.com/ preguntas/8700619/get-specific-object-from-rdata-file –

2

En R v3.0.1 la función load() tiene un nuevo argumento. Cargando un archivo RData con

load("mydata.RData", verbose=TRUE) 

le mostrará los objetos que se cargan. Por supuesto, todavía significa que tienes que cargar el objeto.

1

Tal vez,

load("myDataFile.RData",ex<-new.env()) 
content=ls.str(ex) 
Cuestiones relacionadas