如何计算h点

问题描述

我正在尝试编写一个计算h点的函数。该功能是在秩频率数据帧上定义的。 考虑以下data.frame:

DATA <-data.frame(frequency=c(49,48,46,38,29,24,23,22,15,12,10,9,9),rank=c(seq(1,15)))

和h点的公式是:

如果{存在r = f(r),h点= r } 否则{h-point = f(i)j-f(j)i / j-i + f(i)-f(j)} 其中 f(i) f(j)是ith和j等级的相应频率, i j i j> f(j)的相邻等级。

现在,我已经尝试了以下代码:

fr <-function(x){d <-DATA$frequency[x]
return(d)}

for (i in 1:length(DATA$rank)) {
j <- i+1
if (i==fr(i))
return(i)
else(i<fr(i) && j>fr(j)) {
s <-fr(i)*j-fr(j)*i/j-i+fr(i)-fr(j)
return(s)
}}

我也尝试过:

for (i in 1:length(DATA$rank)) {
    j <- i+1
    if (i==fr(i))
        return(i)
    if (i<fr(i) while(j>fr(j))) {
        s <-fr(i)*j-fr(j)*i/j-i+fr(i)-fr(j)
        return(s)
    }}

,它们都不起作用。对于 DATA ,所需结果将是 i = 11 j = 12 ,因此: h点= 12×12-10×11 / 12-11 + 12-10

你能告诉我我在做什么错吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)