Ich muss eine benutzerdefinierte Funktion aufrufen, um etwas zu berechnen. In dieser Funktion gibt es eine if-Anweisung, um die Eingabewerte zu überprüfen. Aber meine Codes geben keine erwarteten Werte zurück.
Erstellt einen Test data.frame
%Vor%test_fun1 gib einfach die Summe aller Werte zurück
%Vor%test_fun1 gibt die Ergebnisse wie erwartet zurück
%Vor%Dann füge ich eine if-Anweisung hinzu, um zu prüfen, ob alle Werte gleich sind.
%Vor%Aber test_fun2 gibt TRUE für Werte zurück, die größer als 2 sind
%Vor%Ergebnisse sind wie erwartet für andere Werte für test_fun3 für andere Werte.
%Vor%Ich könnte die gleichen Ergebnisse für 4 oder 5 bekommen
%Vor%In meinen realen Daten habe ich FALSE von Nicht-NA-Tests erhalten, kann aber hier kein Reproduktionsbeispiel erstellen.
Irgendwelche Ideen zu diesem Problem? Danke für Anregungen.
%Vor% Das Problem ist offensichtlich, dass mutate
versucht, die Klasse der Spalte aus der ersten Zuweisung zu bestimmen und diese Klasse auf alle anderen Gruppen anzuwenden. Und die Klasse von NA
ist (in deinem Fall leider) logical
. Für weitere Details können Sie sich hier Ссылка
Ich würde vorschlagen, dass Sie dies umgehen, indem Sie eine gegossene NA
zuweisen. Siehe auch ? NA