は、次のモックのデータを考える:データフレームから未使用のレベルを削除するにはどうすればよいですか?
set.seed(123)
x <- data.frame(let = sample(letters[1:5], 100, replace = T),
num = sample(1:10, 100, replace = T))
y <- subset(x, let != 'a')
がy$let
利回り
a b c d e
0 20 21 22 18
のテーブルを作成するしかし、私はa
はもう表示したくありません。私はこれを行うにしよう:今0が私に与えているので、
levels(y$let) <- factor(y$let)
I混乱周波数を
b d c e
0 20 21 40
私は問題を回避xtabs(~ y$let, drop.unused.levels = T)
と仕事をする可能性が承知しているが、それはしません変数のレベルをそのコアでリセットします(私にとって重要なのは、これは初期の変更であり、これは解析全体を通して実行されるデータセットに行っています)。さらに、xtabs
はtable
とは異なるクラスです。これはプロジェクトの後半に頭痛を与えます。
質問:私はサブセットを作成したときに削除されたレベルを表示しないように、どのようにしてlevels(y$let)
を自動的に変更できますか?この場合、どうすれば[1] "b" "c" "d" "e"
と表示させることができますか?
勝利の回答int彼の重複する質問はここの答えほど良くはありません。これは多くの良い答えがあるので、もう一方はこれと重複してマークする必要があります – TheSteve0