Ich versuche, eine neue Spalte basierend auf den Werten anderer Spalten zu erstellen.R: muate über mehrere Spalten, um eine neue Spalte zu erstellen
Hier ist ein Datensatz, der dem ähnelt, woran ich gerade arbeite. Ich habe drei Variablen, Test1, Test2, Test3. Ich versuche eine neue Variable zu erstellen, die 1 ist, wenn eine der Testvariablen entweder DF60, DF61, DF63 oder DF64 oder 0 ist.
Test1<-c("DF64", "DF63", "DF89", "DF30", "DF70")
Test2<-c("DF61", "DF25", "DF00", "DF30", "DF99")
Test3<-c("DF80", "DF63", "DF60", "DF63", "DF70")
Test<-data.frame(Test1, Test2, Test3)
Ich habe viele ifelse Aussagen im Moment und bin auf der Suche nach einem Code, der Schleife über die mehrere Testvariablen können, während mehrere Werte erlaubt nachgeschlagen werden.
Nachdem ich einige ähnliche Threads durchgesehen habe, habe ich mutate_at versucht, aber ich denke nicht, dass das der richtige Weg ist.
Test2<- Test %>%
mutate_at(vars(starts_with("Test")), funs(Test=ifelse("DF60" | "DF61" |
"DF62" | "DF63", 1, 0)))
Jede Hilfe wird sehr geschätzt!
Danke!
Danke! Gibt es eine Möglichkeit, alle ursprünglichen Variablen beizubehalten (gibt es andere Variablen zusätzlich zu Test1, Test2, Test3)? Ich muss mehrere Variablen basierend auf den gleichen Test1, Test2, Tes3 Variablen erstellen, so dass sie nicht geändert werden sollen. – user3047435
Danke !!! Tut mir leid, was macht Split (., 1 <10) in diesem Fall? – user3047435
split teilt das df in eine Liste von dfs basierend auf dem Argument auf. Das folgende map_df wendet das Argument auf jedes dieser dfs an und bindet sie zurück in ein df.In diesem Fall wollte ich keine Liste verschiedener dfs, sondern nur eine Liste von einem df (dem ganzen df). Deshalb teile ich basierend auf einem Argument, das immer wahr ist (nicht sicher, ob es notwendig ist, du könntest ohne versuchen. Diese Antwort basiert auf einer vorherigen Frage von mir auf stackoverflow. Wenn du dem Link folgst, wirst du sehen, woher der Split kommt) – Dries