Bedingte Ersetzung mit dplyrs mutate_all

8
%Vor%

Wenn ich in der zweiten Spalte Bedingung mache, ist alles gut

%Vor%

Aber wenn ich in der ersten Spalte konditioniere, wird nur die erste Spalte ersetzt

%Vor%

Ich bin mir sicher, dass ich bei meiner Vorgehensweise etwas falsch mache, und ich könnte das sicherlich auf eine nicht-dipräsente Art und Weise tun, aber es scheint, dass dies funktionieren sollte. Sie können dies mit mehr Spalten für ein ähnliches Ergebnis erweitern.

    
JustBob81 24.10.2016, 16:58
quelle

1 Antwort

2

Ich denke (aber habe keinen Beweis;)) das liegt daran, dass a geändert wird und dann die Bedingung erneut überprüft wird. Also wenn du es tust

%Vor%

a wird mutiert (enthält also keine von Null verschiedenen Werte mehr) - dann wird die Bedingung a != 0 erneut ausgewertet, aber nie TRUE . Wenn Sie dies z.

%Vor%

würde es das gewünschte Verhalten geben. Sie können versuchen

%Vor%

, die die Spalte a "on the fly" nicht aktualisiert, wird also das gewünschte Ergebnis liefern.

    
konvas 19.04.2017, 15:41
quelle

Tags und Links