如何解决R:编写一个快速函数来为加权数据集构建 CDF
我有一个加权数据集,我正在尝试在 R 中编写一个基本的累积分布函数,它的工作原理是将加权数据分成大小相等的 bin。我找不到有效执行此操作的 R 命令,因此我编写了此函数:
cdf <- function(x,wt){
array <- rep(x,wt)
l = round(length(array)/100) # grouping into percentiles
c = unname(tapply(array,(seq_along(array)-1) %/% l,sum))
pdf = unname(tapply(array,max))
# for uneven group sizes - adding more entries last bin
if(length(c)>100) {
c[100] = sum(c[c(100,101)])
pdf[100] = max(pdf[c(100,101)])
}
cdf = cumsum(as.numeric(c[1:100]))
pdf = pdf[1:100]
return(list(cdf = cdf,pdf = pdf))
}
这行得通,但确实很慢。有什么建议可以加快速度吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。