ただ1つの観測値を含む因子からレベルを落とす単純な関数(drop.levelsに似ています)が存在するかどうかを知りたいと思います。私は以下の再現可能な例を提供します。今まで私はただ一つの観察でレベルを含む要因の名前を保存することができましたが、特定のレベルを落とすためにすべてのコードを書くのは苦痛になります。単一観測を含むドロップ要因レベル
db0 <- data.frame(let = c(sample(letters[1:5], 99, replace = T),"z"),
let2 = sample(letters[6:11], 100, replace = T))
#Checking which factor has levels with only one obs
facLevels <- lapply(db0, table)
facNames <- list()
for(i in 1:length(facLevels)){
facNames[i]<-ifelse(min(facLevels[[i]])==1, names(facLevels[i]), NA)
}
facNames <- as.character(facNames[!is.na(facNames)])
私がしたいことは基本的にはレットにzレベルをドロップすることです。おかげさまで
のために書いて好きではない場合は?データからその行を削除しますか?その値をzではなくNAに設定したいのですか? – MrFlick
はい、その行をnaに設定することは簡単に解決できるので解決策になります。私は多くのレベルの要素がたくさんあることを覚えておいてください。どのレベルに単一の観察が含まれているかは事前に分かりません。そのため、手動で行うよりもむしろこのアプローチを選択しています。 –