Как удалить строки, содержащие уникальные уровни факторов, из фрейма данных в R?

#r

#r

Вопрос:

У меня есть вызываемый столбец Keywords , и это тип данных фактора со 150 уровнями. Большинство из этих уровней представляют собой комбинации других уровней или опечаток. Я хотел бы удалить все строки, Keyword уровень которых имеет только 1-5 экземпляров. Как мне это сделать?

Например:

Допустим, у меня есть 300 строк с ключевым словом «a», пара сотен «b» и несколько сотен «c. Но тогда у меня есть 100 других уровней, которые должны быть одним из этих трех, но являются некоторыми вариантами, такими как «A1» или «A2». Я просто пытаюсь получить представление о данных, но все относительно низкие уровни отбрасывают все графики.

Ответ №1:

Что-то вроде

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

Вы можете использовать либо dd$Keywords <- factor(dd$Keywords) или dd$Keywords <- droplevels(dd$Keywords) после подмножества, чтобы удалить редкие уровни факторов из списка уровней (удаляются наблюдения, а не сами уровни subset )

Ответ №2:

вы можете использовать dplyr функцию пакета n()

 library(dplyr)

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

Комментарии:

1. Я получаю 404 во install.packages("dplyr") время R6: Installing package into ‘.../R/win-library/3.3’ (as ‘lib’ is unspecified) also installing the dependency ‘R6’ trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/R6_2.1.3.zip' Warning in install.packages : cannot open URL '...R6_2.1.3.zip': HTTP status was '404 Not Found' Error in download.file(url, destfile, method, mode = "wb", ...) : cannot open URL '...R6_2.1.3.zip' ... package ‘dplyr’ successfully unpacked and MD5 sums checked