0
我有一個數據幀,我試圖採取因子變量,只保留前31的水平,使所有其他級別的一些通用的水平。一個R函數爲載體
我需要跨越幾個向量,所以我想我會創建功能做到這一點,但我沒有多少運氣。我想我需要以某種方式使用mapply
或Vectorize
,但我不認爲我正確地做這件事,因爲我得到有關無法分配內存3.6演出的錯誤消息。
這是其中x是矢量的功能和TOPCOUNT是等級的數量保持
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 2012-04-16 23:49:12
@Tommy Dang,我知道這件事嗎?我會修復它... – joran 2012-04-17 00:14:46
這樣做。非常感謝你。 – screechOwl 2012-04-17 04:45:20