我想比较具有不同数据量和不同起点/终点的两个数据集。我想使用 KS.test 因为我在我编写的 C 程序中做类似的事情(通过 GSL 直方图比较数据 -> GSL cdf -> 自写的 KS 测试)但由于该程序尚未发布,我仍然无法使用它为此。然而,我确实想在 R 中使用相同的原则,但似乎无法掌握如何在 R 中执行此操作。

我有两个经验加权分布函数(用 spatstat 库创建),我正在尝试对它们执行 KS.test,但它给了我一个我不太确定如何解释的错误。

我执行的 R 代码:

预测和实验包含一组 xy 值(不同的长度、开始和结束 X 值)。

cdf_e<-ewcdf(experimental[,1],weights=experimental[,2])
cdf_p<-ewcdf(predicted[,1],weights=predicted[,2])
ks.test(cdf_e,cdf_p)

我得到的消息是:
Error in x[!is.na(x)] : object of type 'closure' is not subsettable
In addition: Warning message:
In is.na(x) : is.na() applied to non-(list or vector) of type 'closure'

谁能告诉我这具体意味着什么(因为 ?ks.test 没有提到我可以与此错误相关的任何内容),或者我是否应该使用不同的函数调用或不使用什么。

PS:每个数据文件的前10行如下:

预料到的
m/z I
292.1 1272
322.0 815
324.9 780
350.0 922
363.9 781
366.0 87049
366.9 12773
367.9 1620
383.6 1258

实验性的
m/z I
366.139 1229.62
367.142 186.775
368.145 10.9435
528.192 19.8701
529.195 4.39351
579.435 11.5899
680.996 73.8311
681.861 7.2526
745.032 5.31373

最佳答案

我想这是因为 ks.test 期望将两个数据值向量或数据值向量和命名分布函数作为参数;不是 ECDF 本身。如果您已经有两个 ECDF,您可以自己计算 KS 统计量。

关于r - 在 R 中对经验加权分布函数执行 KS.test,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14566922/

10-12 18:09