2016-07-07 5 views
3

Ich habe das Problem, wo ich ein Objekt des Dateityps .Rdata laden muss, wo der Name des Objekts unbekannt ist. Ich bin in der Lage, den Namen zu erhalten, indem Sie verbose = TRUE in der load Funktion verwenden. Ich benenne das Objekt dann mit get um, um den Objektnamen für weitere Verarbeitungsschritte zu standardisieren. Jetzt möchte ich das ursprüngliche Objekt entfernen, indem ich diesen Namen anrufe. Ich kann nicht die Zeichenfolge scheinen in meinem Objekt gehalten zu bekommen rm zu adressieren, die den Namen aufgezeichnet:Wie kann ein geladenes Objekt in R dynamisch entfernt werden, wenn der Objektname unbekannt ist?

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 

Antwort

3

Verwenden Sie einfach rm(list = obj.name) als list akzeptiert Zeichen.

+0

Zu einfach. Vielen Dank! –

Verwandte Themen