2016-10-07 1 views
1

Ich habe eine Spalte namens Keywords, und es ist ein Faktor Datentyp mit 150 Ebenen. Die meisten dieser Ebenen sind Kombinationen anderer Ebenen oder Tippfehler. Ich möchte alle Zeilen entfernen, deren Keyword eine Ebene ist, die nur 1-5 Instanzen hat. Wie mache ich das?Wie entfernt man Zeilen mit eindeutigen Faktorstufen aus einem Datenrahmen in R?

Zum Beispiel:

Lassen Sie uns sagen, ich habe 300 Zeilen mit ‚a‘ als das Schlüsselwort, ein paar hundert ‚bs und ein paar hundert‘ c ist. Aber dann habe ich 100 andere Levels, die eins von diesen drei sein sollten, aber eine Variante wie 'A 1' oder 'A2'. Ich versuche nur, eine Vorstellung von den Daten zu bekommen, aber all die relativ niedrigen Werte werfen alle Graphen ab.

Antwort

4

So etwas wie

tt <- table(dd$Keywords) 
rare_levels <- names(tt)[tt<5] 
dd <- subset(dd,!Keywords %in% rare_levels) 

Sie entweder dd$Keywords <- factor(dd$Keywords) oder dd$Keywords <- droplevels(dd$Keywords) nach subsetting können die seltenen Faktorstufen aus der Liste der Ebenen fallen zu lassen (die Beobachtungen, nicht die Werte selbst, durch subset fallen gelassen werden)

4

können Sie dplyr Paket Funktion n()

library(dplyr) 

mtcars %>% 
    mutate(cyl = as.factor(cyl)) %>% 
    group_by(cyl) %>% 
    filter(n() >12) # require each level with more than 12 obs 
+0

Ich bekomme einen 404 während 'install.packages (" dplyr ")' auf R6: 'Installieren des Pakets in '.../R/win-library/3.3' (wie 'lib' ist nicht angegeben) auch Installieren der Abhängigkeit 'R6' versucht URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/R6_2.1.3.zip' Warnung in install.packages: kann URL nicht öffnen '... R6_2 .1.3.zip ': HTTP-Status war' 404 Not Found ' Fehler in download.file (URL, Zieldatei, Methode, mode = "wb", ...): kann URL nicht' ... R6_2.1.3. zip ' ... Paket' dplyr 'erfolgreich entpackt und MD5-Summen geprüft' –

Verwandte Themen