我正在尝试使用 R 包 Survey 和 srvyr 在复杂的调查设计中应用堪培拉距离函数。
示例:
dstrata %>%
group_by(awards) %>%
summarise(api00 = survey_mean(api00),
api99=survey_mean(api99))
我想应用canb.dist函数来测量apo00和api99之间的距离
canb.dist <- function(x, j){ sum((abs(x-j))/(abs(x)+abs(j)))}
canberra.index= function(x,j){
Canbdist=sum((abs(x-j))/(abs(x)+abs(j)))
domain=numeric(length(x))
return (CD= Canbdist/domain)
}
我不知道是否有人定义了堪培拉距离的加权版本,但它是
abs(x-y)/(abs(x)+abs(y)
的总(或平均值),所以
z=abs(x-y)/(abs(x)+abs(y))
survey_mean(z)
或 survey_total(z)