R kodunu ve çıktısını organize etmenin etkili yolları nelerdir? [kapalı]


23

Başkalarının R kodunu ve çıktısını nasıl organize ettiği ile ilgili girdi arıyorum.

Şu anki pratikim, bir metin dosyasına bloklar halinde kod yazmaktır:

#=================================================
# 19 May 2011
date()
# Correlation analysis of variables in sed summary
load("/media/working/working_files/R_working/sed_OM_survey.RData")
# correlation between estimated surface and mean perc.OM in epi samples
cor.test(survey$mean.perc.OM[survey$Depth == "epi"], 
    survey$est.surf.OM[survey$Depth   == "epi"]))
#==================================================

Daha sonra çıktıyı başka bir metin dosyasına yapıyorum, genellikle bir açıklama ekledim.

Bu yöntemle ilgili sorunlar:

  1. Kod ve çıktı, tarihe göre açıkça bağlantılı değil.
  2. Kod ve çıktı kronolojik olarak düzenlenmiştir ve bu nedenle aranması zor olabilir.

Daha sonra bir içindekiler tablosu yapabildiğim için bir Sweave belgesini her şeyle yapmayı düşündüm ancak bu, sağlayacağı faydalardan daha zor olabilir gibi görünüyor.

Etkili arama ve düzenleme yapmak için R kodunuzu ve çıktınızı düzenlemek için sahip olduğunuz etkili rutinleri bana bildirin.


2
Sadece yapıştırmak / kopya önlemek için, sink()ya capture.output()arkadaşların olabilir. Hmisc , Sweave veya brew gibi raporlama araçlarını dikkate almaya değer (puan 1). Sürüm oluşturma sistemleri ( rcs , svn veya git ) 2. maddeye yardımcı olabilir.
chl

@chl - Önerileriniz için teşekkürler. Ben farkında değildi sink()ve capture.output(). Bu harika.
DQdlM

1
bugün ayrıca knitr var!
kjetil b halvorsen

Yanıtlar:


22

Bu soruyu soran ilk kişi siz değilsiniz.


+1 ve verdiğiniz ilk bağlantı burada bir iş parçacığına referans veriyor :-)
chl

@chl Teşekkürler! Bu sorunun tekrar edilip edilmediğini ve kapatılması gerektiğini merak ediyordum ...
Bernd Weiss

Öyle, IMO. Ancak kapatılacak oy olmadığından, kapatmak istemiyorum. Ayrıca, büyük olanı daha geneldi, ancak geçmişte çok benzer bir soru kapatılmıştı. Bekleyelim ve nasıl gittiğini görelim.
chl

liste için teşekkürler! Bu çok faydalı. Bu soruyu soran ilk kişi ben değildim, fakat (tabii ki beceriksiz) ilk araştırmamla pek bir şey bulamadım.
DQdlM

6

Birisi, her proje veya analiz için her şeyi 4 dosya halinde organize ediyorum. (1) 'code' R işlevlerinin metin dosyalarını sakladığım yer. (2) 'sql' Verilerimi toplamak için kullanılan sorguları tuttuğum yer. (3) 'dat' Ham ve işlenmiş verilerimin kopyalarını (genellikle csv) sakladığım yer. (4) 'rpt' Dağıttığım raporları sakladığım yer.

Dosyalarımın tümü, 'analysis_of_network_abc_for_research_on_modified_buffer_19May2011' gibi çok ayrıntılı isimler kullanılarak adlandırıldı

Ayrıca, hipotezi, varsayımları, dahil etme ve hariç tutma kriterlerini ve teslim edilebileceklerime ulaşmak için atmayı düşündüğüm adımları belirttiğim yere ayrıntılı belgeler yazarım. Bütün bunlar tekrarlanabilir araştırmalar için paha biçilmezdir ve yıllık hedef belirleme sürecimi kolaylaştırıyor.


2

Şimdi Sweave'a geçiş yaptım, asla geri dönmek istemiyorum. Özellikle çıktı olarak çiziminiz varsa, her bir arsa oluşturmak için kullanılan kodu takip etmek çok daha kolaydır. Aynı zamanda, küçük bir şeyi başlangıçta düzeltmeyi çok kolaylaştırır ve manuel olarak herhangi bir şeyi tekrar yapmak zorunda kalmadan çıkışta dalgalanmasını sağlar.


1
Sweave harika. Alışması biraz zaman alır ancak TeX ve R'yi zaten biliyorsanız, bu açıkça görülüyor. Aynı zamanda, bir daha asla masa sütunlarını hizalayarak zaman harcamanıza izin vermez, bu güzeldir.
richiemorrisroe

giriş için teşekkürler. Sweave ile ilgili 2 kaygım: 1) Rehberimde bazilyon dosyaları ile ortaya çıkacağım - özellikle çok sayıda rakamla, ve 2) Tüm dokümanı derlerken her zaman hıçkırıkları önlemek için kodla ilgili gerçekten dikkatli olmalıyım (örneğin, bir şeyin yüklü olduğunu ve olmadığını düşünüyorum). Bu problemlerin var mı?
DQdlM

1) İsterseniz ara dosyaları silmeyi seçebilirsiniz; Bunu otomatik olarak yapan Sweave.sh betiğini ( cran.r-project.org/contrib/extra/scripts/Sweave.sh ) kullanıyorum; Yine de kolayca kapatılabilir. Bunu yaparsanız, olası felaketi önlemek için kullanmadan önce ne sileceğini bildiğinizden emin olun. Kısa versiyon, eğer hiçbir dosya sizin Rnw dosyanızın adını paylaşmıyorsa sorun değil.
Aaron - Monica,

2) Benim düşünceme göre, bu şekilde dikkatli olmak İyi bir şeydir ve bazen Sweave belgemi bu amaç doğrultusunda, yani, yeniden oluşturmak için gereken her şeyi gerektiği gibi takip ettiğimden emin olmak için derleyecektir. analizi.
Aaron - Monica,

1
@ naught101: Uzun analizler için ayrı ayrı çalıştırıyorum ve sonuçları .RDataSweave belgesine giriş yapmak için genellikle bir dosyaya kaydederim. Bununla birlikte, bir kod öbeğinin sonuçlarını "önbelleğe almak" için birkaç harika seçenek de vardır, böylece tekrar çalıştırılmaz.
Aaron - Monica'yı yeniden kurun

2

Tek .R kod dosyalarını yapılandırmak için, strcode , kod ayırıcıları eklemek için oluşturduğum bir RStudio eklentisi (isteğe bağlı başlıklar ile birlikte) kullanabilir ve bunlara dayanarak kod dosyalarının özetlerini elde edebilirsiniz. Bu blog yazısında kullanımını daha ayrıntılı olarak açıklıyorum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.