2010-03-26 22 views
13

şöyle size saved.file.rda olarak kaydedilen bir nesne foo var düşünün Ar yüklenen saved.file.rda. Bu isimde R'nin bir yolu var mı? Ancakbelirleyen isim

bar <- load('saved.file.rda') 
eval(parse(text=bar)) # this will pull up the object that was in saved.file.rda 

, bunu yapmanın daha iyi bir yolu vardır:

Onu küçük aksak görünüyor takip ettiği yolu, yapabilir? Eğer "temiz" olması ve malzeme ile global bir çalışma alanı kirletmez istiyorsanız

bar <- get(load('saved.file.rda')) 

:

bar <- load('saved.file.rda') 
the.object <- get(bar) 

ya da sadece: yaklaşık, saved.file.rda kaydedilmiş yalnızca bir nesne vardır varsayarsak

+0

Sadece netleştirmek için: Sonra istediğini elde etmek get ve ls kullanabilirsiniz nesnenin ismini istiyorum (' "foo"') ve/veya nesnenin değerini (' "a"')? – Marek

+0

Marek, daha sonra başvurabilmem için nesnenin adıyla interesetd. – andrewj

+0

Nesnenin adı, 'bar' değişkeninizde. Böylece yazdırabilir ve adını görebilirsiniz. – Marek

cevap

18

yüklediniz (ve adını unuttuysanız), nesneyi bir ortama yükleyebilir ve bu ortamı get'a çağırabilirsiniz.

Belki: iyi

temp.space <- new.env() 
bar <- load('saved.file.rda', temp.space) 
the.object <- get(bar, temp.space) 
rm(temp.space) 
... 
+0

Veriler ortamlara yükleniyor farklı. Cevabımı kontrol et. Yük verilerini global çalışma alanına çözersiniz. Yap 'ls()'. – Marek

+0

Ah .. 'load' için ikinci argüman olarak' temp.space'ı koymak istedim. İyi yakalama (ve düzeltmek için düzenlenmiş) –

+0

Bunun için teşekkürler, bunun için bir süre bakıyordum. –

3

i (yani R ikili dosya sadece yüklenen nesnenin adını bulun) bunu ihtiyacını ortadan kaldıran bir işlev biliyor musunuz - diğer bir deyişle bunun yerine 'yük' R ikili dosyaları yüklemek için bu tekniği kullanabilirsiniz:

file_path = "/User/dy/my_R_data/a_data_set.RData" 
attach(file_path, pos=2, name=choose_a_name, warn.conflict=T) 
  • 'warn.conflicts = T' default seçenek

  • 012 olduğunu
  • 'Pos = 2' ayrıca varsayılan değerdir; "2" , aramanızda yolunu belirtir. Örneğin, 1 konumu ".GlobalEnv." Arama yollarının tamamını almak için arama() öğesini kullanın. Yani Eğer verileri yükleyebilirsiniz Eğer ?load okumak gibi nesneyi

5

kaldırmak için arama (tarafından için) [2]

  • kullanımını 'ayırmak' yeni nesneyi arama yoluna erişme ediyorum belirtilen ortama.

    tmp_env <- new.env() 
    load('saved.file.rda', tmp_env) 
    get(ls(tmp_env), envir=tmp_env) # it returns only first object in environment 
    # [1] "a" 
    
  • İlgili konular