2011-12-17 15 views
6

Estoy tratando de cargar un archivo .rda en r que era un dataframe guardado. Aunque no recuerdo el nombre.obtener el nombre de un dataframe para cargar un archivo .rda en R

He tratado

a<-load("al.rda") 

que luego no me deja hacer cualquier cosa con una. Obtengo el error

Error:object 'a' not found 

También intenté usar el signo =.

¿Cómo cargo este archivo .rda para que pueda usarlo?

I restared R con carga ("al.rda) y sé el siguiente error

Error: C stack usage is too close to the limit 
+0

simplemente haga 'load (" al.rda ")' y haga 'ls()' para verificar qué objetos R se cargaron en el entorno global. – Ramnath

+0

Llego al final cerrando la conexión no utilizada 3 (al.rda). ¿Qué debería estar buscando aquí? – megv

+1

@megv - Un par de cosas más para probar: 1. Instale una versión anterior de R e intente cargarla allí; es posible que el archivo sea antiguo y las versiones R más nuevas tengan problemas con él. 2. Intente cargarlo en Linux. – Tommy

Respuesta

4

Tuve que volver a instalar R ... de alguna manera estaba dañado. El comando simple que esperaba de

load("al.rda") 

finalmente funcionó.

+0

+1 - ¡Siento tu dolor! Esta fue una desagradable ... – Tommy

5

Uso 'conectar' y luego 'ls' con un argumento de nombre algo como:.

attach("al.rda") 
ls("file:al.rda") 

El archivo de datos se encuentra ahora en su ruta de búsqueda en la posición 2, más probable es que:..

search() 
ls(pos=2) 

de la iluminación t Typing El nombre de cualquier objeto guardado en al.rda ahora lo obtendrá, a menos que tenga algo en la posición 1 de la ruta de búsqueda, pero R probablemente le advertirá con un mensaje sobre algo que enmascara a otra cosa si es que lo hay.

Sin embargo, ahora sospecho que no ha guardado nada en su archivo RData. Dos razones:

  1. Usted dice que usted no recibe un mensaje de error
  2. carga dice que no hay nada cargado

puedo duplicar esta situación. Si guardas (file = "foo.RData"), obtendrás un archivo RData vacío; lo que probablemente quisiste hacer fue guardar.image (archivo = "foo.RData") que guarda todos tus objetos.

¿Qué tan grande es este archivo .rda tuyo? Si tiene menos de 100 bytes (mis archivos RData vacíos tienen 42 bytes de longitud) entonces sospecho que eso es lo que sucedió.

+0

Obtengo el carácter (0) – megv

+0

Sospecho que no hay nada en él. Vea editar arriba ... – Spacedman

+0

el tamaño es 317,888kb – megv

4

La función loadhace devuelve la lista de variables que cargó. Sospecho que obtienes un error cuando cargas "al.rda". ¿Qué produce exactamente R cuando carga?

Ejemplo de cómo se debe trabajo:

d <- data.frame(a=11:13, b=letters[1:3]) 
save(d, file='foo.rda') 
a <- load('foo.rda') 
a # prints "d" 

sólo para estar seguro, compruebe que la función load en realidad se llama es el original:

find("load") # should print "package:base" 

EDITAR Puesto que usted ahora aparece un error al cargar el archivo, probablemente esté dañado de alguna manera.Prueba esto y decir lo que se imprime:

file.info("a1.rda") # Prints the file size etc... 
readBin("a1.rda", "raw", 50) # reads first 50 bytes from the file 

sin tener acceso al archivo, es difícil investigar más ... Tal vez usted podría compartir el archivo de alguna manera (http://www.filedropper.com o similar) ?

+0

adivinando posibles problemas, 'getwd()' y 'list.files()' (o 'load (file.choose())' son algunas herramientas útiles para calcular fuera por qué el archivo podría no estar cargando (si no lo está); * y * asegurándose de que el archivo realmente se llame 'al.rda' y no' a1.rda' ... –

+0

Este es el comando que uso> l1 < -load ("al.rda") > l1 Error: no se encontró el objeto 'l1' Además: Mensaje de advertencia: cierre de la conexión no utilizada 3 (al.rda) – megv

+0

@megv - ¿Qué hizo 'find (" load ") 'print? – Tommy

0

Normalmente utilizo guardar para guardar solo un objeto y luego utilizo el siguiente método de utilidad para recuperar ese objeto en un nombre de variable dado utilizando load, pero en un espacio de nombres temporal para evitar sobrescribir objetos existentes. Tal vez pueda ser útil para otros también:

load_first_object <- function(fname){ 
    e <- new.env(parent = parent.frame()) 
    load(fname, e) 
    return(e[[ls(e)[1]]]) 
} 

El método puede, por supuesto, también se extenderá a devolver los objetos con nombre y listas de objetos, pero esta versión simple es para mí el más útil.

1

tuve un problema similar, y se resolvió sin reinstalar R. por ejemplo haciendo

load("al.rda) funciona bien, sin embargo si lo hace a <- load("al.rda") no va a funcionar.

+0

Sí, este era mi problema. 'por sí solo establece el valor de la variable. – schoon

+0

comilla faltante anterior s/be 'load (" al.rda ")' –

Cuestiones relacionadas