【发布时间】:2013-03-02 10:12:47
【问题描述】:
我想用 plyr 使用下面的代码按类别计算最常见的因子水平。数据框b 显示了请求的结果。为什么c$mlevels 的值只有“numeric”?
require(plyr)
set.seed(0)
a <- data.frame(cat=round(runif(100, 1, 3)),
levels=factor(round(runif(100, 1, 10))))
mode <- function(x) names(table(x))[which.max(table(x))]
b <- data.frame(cat=1:3,
mlevels=c(mode(a$levels[a$cat==1]),
mode(a$levels[a$cat==2]),
mode(a$levels[a$cat==3])))
c <- ddply(a, .(cat), summarise,
mlevels=mode(levels))
【问题讨论】: