gpt4 book ai didi

r - R 中的模式按组

转载 作者:行者123 更新时间:2023-12-01 13:11:55 25 4
gpt4 key购买 nike

我需要计算每个年龄组的身份证号码的众数。让我们假设下表:

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

不知道是什么问题

谢谢

最佳答案

一种方法:

> myfun <- function(x) unique(x)[which.max(table(x))]
> DT[ , moda := myfun(number), by = age]
> DT
age v number moda
1: 12 -0.9740026 122 122
2: 12 0.6893727 125 122
3: 3 -0.9558391 5 5
4: 3 -1.2317071 5 5
5: 12 -0.9568919 122 122

关于r - R 中的模式按组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com