Zero Division in R

7

Gibt es einen einfachen Weg, um 0 Teilungsfehler in R zu vermeiden. Genauer gesagt,

%Vor%

Dieser Code gibt einen Fehler aufgrund der Division durch Null. Ich möchte einen Weg, um alles / 0 = 0 zu definieren, so dass diese Art von Operation immer noch gültig wäre.

    
Ashin Mukherjee 27.10.2012, 01:55
quelle

4 Antworten

11

Nun, lassen Sie uns eine Minute zurückgehen. R gibt keinen Fehler zurück. Es gibt ganz korrekt NaN zurück. Sie sollten einen guten Grund haben, die NaN-Werte in Ihrer Arbeit abzulehnen. Warum erlaubst du einem b -Element überhaupt null zu sein? Sie müssen darüber nachdenken, was Ihr Code wirklich tun soll, und was es heißt (statistisch, sagen wir mal), alle Fälle mit b[j]==0 fröhlich wegzuwerfen.

    
Carl Witthoft 27.10.2012 16:47
quelle
7

Wie setzen Sie alle Punkte im Nenner auf 0 bis NA und schließen dann NA aus? in deinem sum ?

%Vor%

Oder ohne a : sum(b/ifelse(a==0,NA,a), na.rm = TRUE)

zu ändern     
Chase 27.10.2012 02:00
quelle
6

Wenn Sie alle NaN und Inf Ergebnisse maskieren möchten, versuchen Sie etwas wie:

%Vor%

Oder alles in einer Zeile:

%Vor%     
thelatemail 27.10.2012 02:03
quelle
6

Sie könnten die Funktion "/" ändern, um eine Ausnahme für Null zu haben:

%Vor%

Zum Beispiel:

%Vor%

Dies ist jedoch sehr riskant, zum Beispiel könnte es den Code anderer Leute brechen. Wenn Sie dies tun möchten, ist es wahrscheinlich eine gute Idee, einen anderen Operator zuzuweisen, anstatt / zu ändern. Auch macht es mathematisch keinen Sinn!

    
Sacha Epskamp 27.10.2012 08:37
quelle

Tags und Links