Hata ayıklama için genel öneriler R
Yazdığım bir fonksiyonu kullanırken R bir hata alıyorum:
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: algorithm did not converge
Ben ne yaptım
- işlevi aracılığıyla adım
- baskı hatası oluşuyor ne bulmak için ekleme glm kullanmamalıdır iki işlevi gösteriyor.uygun:
window
save
Benim genel yaklaşımlar print
stop
komut ekleme, ve bu durum yerini bulana kadar satır işlevi bir satır atlama vardır.
Ancak, bu hata kodu nereden geliyor bu teknikleri kullanarak benim için değil. Kod içinde glm.fit
bağlı bile emin değilim. Bu sorunu nasıl teşhis için ne yapmam gerekiyor?
CEVAP
Hata ayıklama bir sanattır, açık Gümüş kurşun yok ki derdim. Herhangi bir dil hata ayıklama için iyi bir strateji vardır, ve burada da (read this nice article from IBM vs.) geçerlidir. Örneğin, ilk iş olaraksorunu yeniden oluşturmak...eğer bunu yapabilirsen, o zaman daha fazla bilgi almak gerekir (günlük gibi). Bunu üretebilir bir kez gerekirazaltmakkaynak aşağı.
Bir "hile", sık kullanılan bir hata ayıklama var derdim rutin: . yerine
- Bir hata oluştuğunda, yani genelde öyle olur bak yığın izleme tarafından arama
traceback()
: O gösterir sana nerede hata oluştu, özellikle yararlı eğer birden fazla iç içe geçmiş fonksiyonlar. - Sonraki
options(error=recover)
; Bu hemen oradan çalışma gezinebilirsiniz hatanın oluştuğu tarayıcı moduna geçer, koyacaktır. - Eğer hala yeterli bilgi yok ise, ben genellikle satır komut satırı üzerinden
debug()
fonksiyon ve adımı kullanın.
R 2.10 en iyi yeni hile komut dosyaları ile çalışırken () findLineNum()
setBreakpoint()
fonksiyonları kullanmaktır.
Son bir yorum olarak: hata, aynı zamanda çok yararlı try()
tryCatch()
harici işlev çağrıları etrafında ifadeleri ayarlamak S4 sınıfları ile ilgili özellikle (). bağlı Bu bazen daha çok bilgi verecek ve ayrıca hataları çalışma zamanında nasıl işleneceğini üzerinde daha fazla kontrol sağlar.
Bu soru ile ilgili birçok öneri var:
Nasıl Google hata ayıklama iletileri y...
Visual Studio çalışma sonrası inşa etm...
Yayınlamadan önce tüm hata ayıklama gü...
Bir yığın izleme, nedir ve nasıl uygul...
Nasıl hata ayıklama KnockoutJS için ba...