#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