Возникла проблема отбрасывания неиспользуемых уровней факторов при разбиении на подмножества раньше. Общие решения включают использование векторов символов, где это возможно, путем объявления
options(stringsAsFactors = FALSE)
Однако иногда для построения графика необходимы упорядоченные коэффициенты, и в этом случае мы можем использовать вспомогательные функции, такие как droplevels
, чтобы создать оболочку для subset
:
subsetDrop <- function(...){droplevels(subset(...))}
Я понимаю, что subsetDrop
в основном решает эту проблему, но есть ситуации, когда подмножество через [
более удобно (и меньше печатать!).
Мой вопрос в том, насколько дальше, ради удобства, мы можем сделать так, чтобы это было «стандартным» поведением R, переопределив [
для фреймов данных, чтобы автоматически понижать уровни факторов. Например, пакет Hmisc содержит dropUnusedLevels
, который переопределяет [.factor
для подмножества одного фактора (в котором больше нет необходимости, поскольку значение по умолчанию [.factor
, похоже, имеет drop
аргумент для удаления неиспользуемых уровней). Я ищу аналогичное решение, которое позволило бы мне разбивать фреймы данных с использованием [
, но автоматически отбрасывать неиспользуемые уровни факторов (и, конечно, сохранять порядок в случае упорядоченных факторов).