SORU
14 Aralık 2010, Salı


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

  1. işlevi aracılığıyla adım
  2. 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
10 Aralık 2009, PERŞEMBE


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

  1. 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.
  2. Sonraki options(error=recover); Bu hemen oradan çalışma gezinebilirsiniz hatanın oluştuğu tarayıcı moduna geçer, koyacaktır.
  3. 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:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fraser Raft

    Fraser Raft

    9 Mart 2010
  • Kurtindo Pop Games

    Kurtindo Pop

    2 HAZİRAN 2013
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013