2017-02-08 2 views
0

Nehmen wir an, ich habe eine Variable mit 594 verschiedenen Elementen.R: Zuweisen bestimmter Elemente einer Variablen zu definierten Gruppen

Was ich erreichen möchte ist, die Elemente in neue vordefinierte Kategorien zu gruppieren. Zum Beispiel reichen die Elemente aus Ebenen [1] bis [85] gehören zu der Kategorie „A“:

workclas<-factor(levels=c("A", "B", "C"), ordered=T) 
    workclas[levels(x)>=1 & levels(x)<85]<-"A" 
    workclas[levels(x)>=85 & levels(x)<272]<-"B" 
    workclas[levels(x)>=272 & levels(x)<594]<-"C" 
    workclas[x=="Refusal" | x=="Don't know" | x=="No answer"]<-NA 
    table(workclas, exclude=NULL) 

Ich dachte an ‚Aggregate‘ aber das offensichtlich nicht funktioniert.

Auch ich kann nicht 'split' verwenden, da ich kein reocurring und identisches Element zu teilen habe.

split(x, f, drop = FALSE, sep = ".", lex.order = FALSE, ...) 
    split(x, f, drop = FALSE, ...) <- value 

Wie würde ich das in R lösen?

Vielen Dank für Ihre Bemühungen!

Thomas

+0

See 'cut' vielleicht –

+0

Danke für diesen wertvollen Beitrag?! Ich denke, das war es. Ich habe es versucht und es hat funktioniert: workisco = cut (workisco, bricht = c (1,8,52,171,279,319,375,401,486,542,590), labels = workclas, rechts = TRUE) – user7535248

Antwort

1

Der kurze Eingang von Benutzer A. Webb wurde sehr geschätzt. Diese ist, was ich tat, wenn jemand anderes mit einem ähnlichen Problem zu kämpfen:

workisco<-as.numeric(workisco) 
workclas<-factor(levels=c("A", "B", "C", "D"), ordered=T) 
workisco = cut(workisco, 
    breaks = c(1,171,279,590), 
    labels = workclas, 
    right = TRUE) 
Verwandte Themen