Oturumlar arasında belirli bir pakete ilişkin seçenekleri veya bilgileri kaydetmenin kesin bir yolu var mı? Örneğin birisinin bir oyun yaptığını ve bir R paketi olarak serbest bıraktığını varsayalım. Yüksek puanlar kaydetmek istediler ve her seferinde R sıfırlamalarını istemiyorlarsa yeni bir oturum başlattılar, bunun en iyi yolu ne olurdu? Şu anda sadece kullanıcıların giriş dizinindeki bir dosyayı depolamayı düşünebilirim, ancak bu yaklaşımı beğendiğimden emin değilim.Oturum ayarlarını paketler arasında kaydetme
cevap
Bu bir yaklaşım olabilir.
scores <- NA
Sonra puanları ile paketi oluşturan: bir işlev (bir kukla fonksiyonu olarak bağlı olduğu oluşturmak herhangi bir fonksiyon) ve aşağıdaki gibi bir set
scores
adı verilen bir veri kümesi olan bir kukla paket oluşturulan veri kümesi.
O zaman kütüphaneyi boş zaman
loc <- paste0(find.package("new"), "/Data")
unlink(paste0(loc, "/scores.rda"), recursive = TRUE, force = FALSE)
scores <- 10
save(scores, file=paste0(loc, "/scores.rda"))
Sonra R. içinden veri kümesini değiştirmek için aşağıdaki kullanılan ve şimdi set veri diyor Ağın yüklenen yeniden:
> scores
[1] 10
Acaba bu İstediğin şeyi yapmak için değiştirilmek mi? Bir şekilde onu kurtarmak zorunda kalacaksınız ama .Last
işlevini karıştırmadan bunu nasıl yapacağınızdan emin değilim.
DÜZENLEME:
Bu bir paket olarak derlemek ve o kadar veri setleri kaydeder tembel yük kullandığınızda bu seçenek o yaşayabilir değildir görünür:
RData.rbd, RData.rbx, .rda dosyaları olarak değil. Bu, yukarıda kullandığım yaklaşımın, otomatik olarak tanınmasını istediğimiz anlamsız olduğu anlamına gelir.
EDIT2 Bu yaklaşım çalışır ve yaptığım bir pakette denedim. Verilerin tembel yükünü yükleyemezsiniz ve açık bir şekilde data(scores)
'u kullanmanız veya aradığınız işlevin içinde data(scores)
'u kullanmanız gerekir. Ben de scores
için .scores
int global.env oluşturuldu ve ilk kez oluşturuldu ve görmek için fonksiyonun içinde exists
kullanılır. Eğer .scores. Vardı, ben bu işlevin içindeki puanlara verdim. Bir kez kütüphaneyi kaldırdıktan sonra tekrar laod attığınızda bir daha asla endişelenmenize gerek kalmaz.
Belki alternatif burada Josh'un tavsiyesi kullanarak nasılsa değiştirilebilir bir fonksiyonu olarak bu kurtarmaktır: Permanently replacing a function
'.onUnload' üzerinde ne yapıyorsunuz? Denemedim ama R kapalıyken tüm paketler için çalıştırılmalı, değil mi? – Backlin
"Skorlar" her zaman değiştirilebileceği zaman yeniden kaydedebilirsiniz (çok sık olmadığı varsayılarak). O zaman "sonunda" kaydetme konusunda endişelenmenize gerek yok " –
Onunla oynamak zorundayım ama bu istediğimi yapacak gibi görünüyor." – Dason
Ayarların, diske veya veritabanına, bir şekilde veya başka bir şekilde kaydetmeden saklanmasının bir yolu yoktur. Yine de aşağıdaki kodu ~/.Rprofile
'a ekleyerek sessiz bir şekilde yapılabilir. Ancak, ayarları options
'u kullanarak başka yollarla kaydeden paketleriniz varsa, bunları el ile eklemeniz gerekir.
Bunun tam olarak istemediğinizi söylediğinizi biliyorum, ancak en azından bazı tartışmalara yol açabilir. Benim sürpriz try(..., silent=TRUE)
için
.Last <- function(){
my.options <- options()
save(my.options, file="~/.Roptions.Rdata")
}
.First <- function(){
tryCatch({
load("~/.Roptions.Rdata")
do.call(options, my.options)
rm(my.options)
}, error=function(...){})
}
~/.Roptions.Rdata
yerine tryCatch
kullanılan, bu yüzden de yoksa başlangıçta bir uyarı verir.
Kullanıcının .Rprofile ayarlarını değiştirmesini gerektirmeden bunun nasıl yapılacağı hakkında herhangi bir fikir var mı? – Dason
Bunun için bir paket hazırlayabilir ve yukarıdaki kodu '.onLoad()' ve '.onUnload()' 'zzz.R''üne koyabilirsiniz, ancak daha sonra her seferinde başlattığınız bu paketi yüklemeniz gerekir. – Backlin
- 1. Paketler arasında Golang paylaşım yapılandırmaları
- 2. Windows ve Mono'da C# Hizmet Ayarlarını Kaydetme
- 3. Oturum Elixir Phoenix'te kaydetme yok
- 4. Python sınıfları arasında oturum açma
- 5. Paketler arasında kalıtım mümkün mü? Ayrıca bunları nasıl derleriz?
- 6. Çerezde oturum kimliği kaydetme kavramı nedir?
- 7. Web Uygulaması ve Konsol Uygulaması arasında Yapılandırma ayarlarını paylaşma
- 8. Webservice ve asp.net uygulaması arasında Oturum Paylaşma
- 9. Apache Sanal Sunucuları arasında Oturum Verileri Aktarımı
- 10. Android | Paketler
- 11. scrapy ayarlarını
- 12. Yüklü paketler kaldırılıyor
- 13. S3: Yinelenen paketler
- 14. Parametreli çok katmanlı paketler
- 15. Symfony: Nasıl paketler
- 16. Virtualenv --system-site-paketler
- 17. IIS ayarlarını al
- 18. Baskı ayarlarını algılama
- 19. geçerli proxy ayarlarını belirleme
- 20. SFL4J ve JDK günlüğü arasında farklı günlüğe kaydetme düzeyi
- 21. Java görev kontrolü - oturumlar arasında özel çizelgeleri kaydetme
- 22. ASP .NET MVC Görüntülemeler arasında çok sayıda parametre kaydetme
- 23. Web.config dosya ayarları IIS ayarlarını geçersiz kılar mı?
- 24. Oturum/2012
- 25. Geleneksel paketler arasındaki farklar com.day.cq.workflow ve com.adobe.granite.workflow
- 26. Günlüğe kaydetme ve günlüğe kaydetme gün ışığından yararlanma
- 27. Resmi, kaydetme olarak kaydetme
- 28. PPP arabiriminden paketler nasıl iletilir?
- 29. Üst düzey paketler içe aktarma
- 30. Laravel 3 Paketler ve Belgeler
değil bir R paketinin başına için, ancak bu tür depolamak için nix Dünyada oldukça tipik gizli bir dosyada veya kullanıcıların giriş dizinindeki gizli dizinde. Pencerelerde bir uygulama veri dizini veya kayıt defteri kullanabilirsiniz. – frankc
Ben de aynı soruyu kendim aldım, sanırım anahtar bu SO mesajında olabilir: http://stackoverflow.com/questions/8661526/permanently-replacing-a-function –
"Biri bir oyun yaptı ve serbest bıraktı Bir R paketi olarak "<- Errror, –