2013-07-05 13 views
8
arasındaki

arasındaki fark Bu basit olabilir, ancak hala hüsrana uğramış hissediyorum, bu yüzden bazı hızlı açıklamalarını takdir ediyorum. Uygun bir cevabı kapsamlı olarak araştırdım, ancak bir tane bulamıyorum..Rfile ve .First

.Rprofile, Rstudio'yu her açtığımda (veya genel olarak R) her açışımda çalıştırmam gereken tüm komutları içerdiğinden, .Rprofile içindeki .First() işlevini tanımlamak için isteğe bağlı nedenim var? Bu gerçekten amacı nedir? İlk()? Ben

library(xts) 
cat("\nWelcome at", date(), "\n") 

:

.First <- function(){ 
    library(xts) 
    cat("\nWelcome at", date(), "\n") 
} 

sadece benim .Rprofile satırları sahip olmaktan yukarıda Nasıl farklıdır:

benim .Rprofile aşağıdaki satırları sahip olduğunu varsayalım, Bir örnek vermek gerekirse her ikisini de denedi ve aynı sonuca sahipler.

Teşekkürler!

cevap

12

temel fark .First çalışma görüntü .Rdata (varsa) yüklenir varsayılan sonra çalıştırılır ve böylece çalışma nesnelere erişebilir olmasıdır. Örneğin

, en Başlangıçta otomatik yüklenecek bir nesne oluşturalım:

x <- 2 
save.image() 

R çıkın ve içeren varsayılan çalışma dizininde bir .RProfile oluşturun:

y <- try(print(x)) 
print(y) 
.First <- function() 
{ 
    print(x) 
    invisible(NULL) 
} 

ilk girişim x yazdırmak başarısız, ancak ikinci başarılı olmalıdır.

+0

Mükemmel. Çok teşekkürler! –

+0

Bu davranışın çok sorunlu olabileceğini göz önünde bulundurmalısınız çünkü ** İlk önce çalışma alanı yüklendiğinde işlevin önceki sürümü tarafından ** silinebilir **. Biri özellikle çalışma alanını yeniden yüklemeli, .Fisrt'ı kaldırmalı ve oturumu yeniden başlatmalıdır (çalışma alanını kaydederek) –

İlgili konular