2016-03-29 22 views
1

Her 800 satırda farklı komut kümelerini çalıştıran çok, çok uzun bir dosyam var. (Toplam yaklaşık 8000 satır). Kodun çalışması için her seferinde 30-3200 satırlarını seçmek çok zahmetlidir. Belirli bir kodun sadece bir parçasını çalıştıran bir komut yazmak mümkün mü? Ve muhtemelen birden çok segmenti? Örneğin. satır 30-3200 ve sonra 4800-5400 çalıştırın.Uzun bir Stata dosya kodunun yalnızca belirli satırlarını çalıştırmak nasıl? (ör. satır 30-3200)

Teşekkürler!

+2

Dosya dolabını birkaç dosya dosyasına bölemez misiniz? –

cevap

2

Genellikle bu iki yaklaşımdan birini almak: Büyük bir proje için

  1. , yarılmış ayrı dosyalar halinde analiz (verileri hazırlamak için örneğin bir clean.do dosya, özet istatistikleri için bir stats.do dosyası, bir analysis.do regresyonlar için dosya ...). Daha sonra komut isteminden include file.do yazarak boru hattının seçilen kısımlarını yeniden çalıştırabilirsiniz

    // build.do - Run the full analysis 
    include clean.do 
    include stats.do 
    include analysis.do 
    

    : Sonra, diğer dosyaları çalıştırmak için include komutu kullanan bir build.do dosya gibi bir şey yaratmak. Analizleri bu gibi ayrı dosyalara bölmek, kaynak kontrolü kullanıyorsanız ve başkalarıyla işbirliği yapmakta da iyi bir fikirdir.

  2. Sen kod parçalarını çalıştırmak için seçenekler alır bir dosya olabilir:

    args run_a run_b 
    
    if `run_a' == 1 { 
        // run the part A code ... 
    } 
    
    if `run_b' == 1 { 
        // run the part B code ... 
    } 
    

    Daha sonra komut dosyasına parametre tarafından çalıştırmak için kod parçalarını belirtin. Örneğin, do file.do 1 0 yalnızca A bölümünü çalıştıracaktır. Bu yöntem, büyük dosyalarla yönetilmesi zor olabilir; 10 farklı argümanın ne yaptığını hatırlamaya çalışın.

Şahsen, yöntem 1'i tercih ederim. Do dosyaları kısa tutun ve kodu organize etmenin bir yolu olarak onlara mantıksal adlar verin. Yöntem 1 ayrıca diğer projelerde kod bulmayı ve yeniden kullanmayı daha kolay hale getirebilir.

İlgili konular