サブセット化が以前に発生したときに未使用のファクターレベルをドロップする問題。一般的な解決策には、可能な場合は宣言することによって文字ベクトルを使用することが含まれます
options(stringsAsFactors = FALSE)
ただし、プロットに順序付けられた要素が必要な場合もあります。その場合、次droplevels
のラッパーを作成するなどの便利な関数を使用できますsubset
。
subsetDrop <- function(...){droplevels(subset(...))}
私はsubsetDrop
ほとんどこの問題を解決することを理解していますが、viaをサブセット化する[
方が便利な(そして入力が少ない)状況もあります。
私の質問は、便宜上、[
データフレームをオーバーライドして因子レベルを自動的にドロップすることにより、これをRの「デフォルト」の動作にどれだけプッシュできるかということです。たとえば、Hmiscパッケージには、単一の要素をサブセット化するためのdropUnusedLevels
オーバーライドが含まれています(デフォルトには未使用のレベルを削除するための引数があるように見えるため[.factor
、これは不要になりました)。未使用の因子レベルを使用してデータフレームをサブセット化できるが、自動的にドロップする(そしてもちろん、順序付けられた因子の場合は順序を維持する)同様のソリューションを探しています。[.factor
drop
[