Probe df:Ändern einer Variable in einem Datenrahmen, nur für einige Stufen eines Faktors (evtl. mit dplyr)
df <- data.frame(x = c(runif(10,0,2*pi),runif(10,0,360)), group = gl(n = 2, k = 10, labels =c("A","B")))
I x
nur für Gruppe A
(wandeln es in Grad) ändern möchten. Mit base
ich gerade:
df <- within(df,x[group == "A"] <- x[group == "A"]*180/pi)
ich mich gefragt, ob es könnte eine Art und Weise, dies zu tun mit dplyr
. Das ist falsch:
df <- df %>% filter(group == "A") %>% mutate(x = x*180/pi)
Weil es nur die Teilmenge von df
wo group == "A"
zurückgibt. Gibt es eine (einfache) Möglichkeit, dies zu tun, oder ist dies ein Fall, in dem base
die dplyr
für Benutzerfreundlichkeit trumps?
Noch einfacher als "Basis". Vielen Dank! – DeltaIV
'dplyr' hat eine eigene typsichere (r) Version von' ifelse' - 'if_else', die sich zu verwenden lohnt. –