我需要计算每个年龄组身份证号码的众数。假设以下表格:
library(data.table)
DT = data.table(age=c(12,12,3,3,12),v=rnorm(5), number=c("122","125","5","5","122"))
所以我创建了一个函数:
g <- function(number) {
ux <- unique(number)
ux[which.max(tabulate(match(number, ux)))]
}
H<-function(tabla){data.frame(MODA=g, count=nrow(tabla))}
clasif_edad1<-ddply(DF,.(age), H)
View(clasif_edad1)
但是我遇到了以下错误:
Error: arguments imply differing number of rows: 0, 1
输出结果应为:
age v number moda
12 0,631152199 122 122
12 0,736648714 125 122
3 0,545921527 5 5
3 0,59336284 5 5
12 0,836685437 122 122
不知道问题出在哪里。
谢谢。
data.table
转换为data.frame
,然后再使用plyr
。data.table
是 R 之王,直接使用即可。 - David Arenburg