R中的pLepage函数

R中的pLepage函数,r,debugging,R,Debugging,这里是一个用于计算Lepage D统计信息的自定义函数,它返回的结果不同于由NSM3::pLepage()生成的D统计信息: 我对自己哪里做错了感到困惑。根据我的说法,问题就在这条线附近: r=rz[sort(z$ix,index=TRUE)$ix] 这里出现错误的原因是z(在输出为NA的测试用例中)有20个元素 因此,sort(z$ix,index=TRUE)$ix产生如下输出: 1 2 4 6 8 10 12 14 16 18 3 5 7 9 11 13 15 17 19

这里是一个用于计算Lepage D统计信息的自定义函数,它返回的结果不同于由
NSM3::pLepage()
生成的D统计信息:


我对自己哪里做错了感到困惑。

根据我的说法,问题就在这条线附近:

r=rz[sort(z$ix,index=TRUE)$ix]
这里出现错误的原因是z(在输出为NA的测试用例中)有20个元素

因此,sort(z$ix,index=TRUE)$ix产生如下输出:

1  2  4  6  8 10 12 14 16 18  3  5  7  9 11 13 15 17 19 20
此外,向量rz的长度是19(而不是20)

rz向量的内容:

 [1]  1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0 10.5  9.0  8.0  7.0  6.0  5.0
[16]  4.0  3.0  2.0  1.0
所以,当我们尝试访问向量rz的第20个元素时,它会生成NA

由于在求和时没有使用na.rm=t参数,因此C和W的值将变为na

这导致Wstar、Cstar和最终D变成NA

1  2  4  6  8 10 12 14 16 18  3  5  7  9 11 13 15 17 19 20
 [1]  1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0 10.5  9.0  8.0  7.0  6.0  5.0
[16]  4.0  3.0  2.0  1.0