2017-12-04 2 views
0

Ich möchte eine Variable nach Gruppe erstellen, die auf der vorhandenen Variablen auf individueller Ebene konditioniert ist. Jede Person hat eine Ausreißervariable 1, 2, 3. Ich möchte eine neue Variable nach Gruppe erstellen, so dass die neue Variable immer 2 ist, wenn mindestens eine Person in dieser Gruppe ist, deren Ausreißervariable = 2 ist; und die neue var = 3, wenn es mindestens eine Person in dieser Gruppe, deren Ausreißer variable = 3.Variable bedingt nach Gruppe in R erstellen (Schreibfunktion)

Die Daten sieht wie folgt aus

grpid id outlier 
1  1 1 
1  2 1 
1  3 2 
2  4 1 
2  5 3 
2  6 1 
3  7 1 
3  8 1 
3  9 1 

Ideal Ausgabe wie diese

grpid id outlier goutlier 
1  1 1  2 
1  2 1  2 
1  3 2  2 
2  4 1  3 
2  5 3  3 
2  6 1  3 
3  7 1  1 
3  8 1  1 
3  9 1  1 

Alle Vorschläge?

Danke!

Antwort

1

Es ist leicht, mit dplyr

library(dplyr) 
df <- read.table(header = TRUE,sep = ",", 
       text = "grpid,id,outlier 
1,1,1 
1,2,1 
1,3,2 
2,4,1 
2,5,3 
2,6,1 
3,7,1 
3,8,1 
3,9,1") 

df %>% group_by(grpid) %>% mutate(goutlier = max(outlier))