Zum Beispiel habe ich in einer data.table drei Spalten. Ich möchte jede Zeile basierend auf dem Zustand einer einzelnen Spalte ändern.Anwenden der Bedingung auf die ganze Zeile mit dplyr
Geschrieben mit allen Variablen In diesem Beispiel, wenn die Spalte a == 4, alle Spalten dieser Zeile werden durch 4 multipliziert dies würde wie folgt aussehen:
a <- c(1,2,3,4,5)
b <- c(2,4,6,7,8)
c <- c(3,6,9,0,3)
data.frame(a,b,c) %>% rowwise() %>% mutate(a=ifelse(a==4,a*4,a),
b=ifelse(a==4,b*4,b),
c=ifelse(a==4,c*4,c))
Gibt es eine Möglichkeit, einfach die setzen Bedingung in einer Zeile, ohne jede Spalte zu schreiben? Ich würde so etwas wie dies vorstellen:
data.frame(a,b,c) %>% rowwise() %>% mutate(.=ifelse(a==4,.*4,.))
Warum dplyr? 'df [df $ a == 4,] <- df [df $ a == 4,] * 4' – zx8754
Es ist komplizierter als das Beispiel. Dies wäre im Vergleich zu einer dplyr-Lösung sehr langsam, oder? – Sebastian
Bitte versuchen Sie ein "kompliziertes" Beispiel anzugeben. – zx8754