rep()
wird den Trick machen.
x %% 2 == 0
gibt einen logischen Vektor, der angibt, welche Elemente von x
gerade sind. Da die ganzzahligen Werte von TRUE
und FALSE
jeweils 1
und 0
sind, gibt uns das Hinzufügen von 1 zu x %% 2 == 0
den Vektor, den wir für unser times
Argument in rep()
benötigen.
Wenn wir Golf spielen, können wir es auf rep(x, (!x %% 2) + 1L)
verkürzen.
Beachten Sie, dass diese Methode auch dann nützlich ist, wenn unser ursprünglicher Vektor nicht sequenziell ist und die geraden Werte immer noch repliziert werden sollen.
%Vor%