Hier ist ein anderer Weg (mit dem gleichen Trick wie Justin, jede Zahl mit der Zahl zu vergleichen, die in den Typ 'integer' umgewandelt wurde):
%Vor%Um Ihren Test zu machen:
%Vor%Ich ging in eine völlig andere Richtung als Tim (ich mag sein besser, obwohl mein Ansatz auf einem gemischten Vektor arbeitet, der ein Zeichenvektor mit Ganzzahlen usw. ist.):
%Vor%EDIT: hat die Funktion geändert, da sie nur bei Zeichenvektoren funktioniert.
Dies funktioniert auch mit Vektoren des Klassencharakters, falls Sie einen Zeichenvektor mit verschiedenen Zahlen haben, die aber durch ein anderes Zeichen ersetzt wurden.
Wenn Sie einen Gleitkommadarstellungsfehler haben, versuchen Sie Folgendes:
%Vor%In meiner Anwendung hatte ich einen sehr brutalen Gleitkommadarstellungsfehler, so dass:
%Vor%Der Rest geteilt durch eins war eins. Ich stellte fest, dass ich mich vor der Ganzzahl runden musste. Ich denke, all dieser Tests würde fehlschlagen, wenn Sie möchten, dass die obigen 89 als Integer zählen. Die "all.equal" -Funktion ist die beste Möglichkeit, Gleitkommadarstellungsfehler zu behandeln, aber:
%Vor%hätte wie in meinem Fall ein falsches Negativ für eine ganzzahlige Wertprüfung.
EDIT: Beim Benchmarking habe ich folgendes gefunden:
%Vor%war allgemein der beste Darsteller.
%Vor%hat normalerweise gut funktioniert, oft genauso schnell.
%Vor%funktioniert, aber nicht so schnell wie die anderen
%Vor%wenn der Vektor nicht ganzzahlig war, hatte schreckliche Leistung (sicherlich, weil es sich die Mühe macht, den Unterschied zu schätzen).
%Vor%Wenn der Vektor alle ganzzahligen Werte enthielt, gab er das inkorrekte Ergebnis zurück (unter der Annahme, dass die Frage nach ganzzahligen Werten und nicht nach ganzzahligen Werten suchen sollte).