5 つの因子水準を持つ複数の変数を持つデータ フレームがあります。それらのレベルの 1 つだけを削除したい。まず、そのレベルのすべてのインスタンスを NA に割り当ててから、droplevels
コマンドを使用して空のレベルを取り除きました。
ただし、データ フレーム内の 1 つの変数については、削除したくないレベルの 1 つに観測値がありません。空の要素だけでなく、特定の要素レベルのみを削除する方法はありますか?
ここに再現可能な例があります
df <- data.frame(var1=rep(letters[1:5],2),var2=rep(letters[5:1],2),var3=c("a","c","d","e","a","c","d","e","a","c"))
levels(df$var3)<-c("a","c","d","e","b")
これにより、私のようなデータフレームが設定されます。ここで、レベル e のすべてのインスタンスを削除し、可能なレベルとしてドロップします。以下のコードでこれを行います。
df2<-replace(df, df=="e",NA)
df2<-droplevels(df2)
問題は、それを使用するdroplevels
と、var3 からレベル b もドロップされることです。すべての変数からレベル b だけを削除したくありません。特定のレベルだけを削除する方法を探しましたが、答えが見つかりませんでした。特定の因子レベルだけを削除する方法を教えてもらえますか? 私が理想的に望むのは、droplevels
レベル e を削除するように指示できるコマンドです。そのような機能は存在しますか?