0
私はデータフレームを持っています。私は因子変数をとり、上位31レベルだけを保持し、他のすべてのレベルをいくつかの一般的なレベルにしようとしています。ベクトルのR関数
私はいくつかのベクトルに渡ってこれを行う必要があるので、私は関数を作成すると思ったが、私は多くの運がない。私は何とかmapply
またはVectorize
を使用する必要があると思うが、3.6ギガバイトのメモリを割り当てることができないというエラーメッセージが表示されるので、適切にやっているとは思わない。
これは私がこのような何かを書くことができるようにしたいのですが、xがベクトルで、トップカウントが
createFactor <-function(x, topCount){
table1 <- data.frame(table(x))
table1 <- table1[order(-table1$Freq),]
noChange <- table1$Var1[1:topCount]
newVals1 <- factor(ifelse(x %in% noChange, x, "-1000"))
newVals1
}
を保つためにレベルの数である関数である:
df1$topLevels <- createFactor(df1$fact1, 31)
どれでも提案?
+1実際には 'unusedLevels'は' levelsToKeep'ではありませんか? – Tommy
@トミーダン、それを後ろに持ってきたのですか?私はそれを修正します... – joran
それをしました。どうもありがとうございました。 – screechOwl