3

我想比较具有不同数据量和不同起点/终点的两个数据集。我想使用 KS.test,因为我在我编写的 C 程序中做类似的事情(通过 GSL histogram -> GSL cdf -> self-written KS test 比较数据)但由于该程序尚未发布,我仍然无法使用它为此。然而,我确实想在 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
4

1 回答 1

3

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

于 2013-01-28T11:54:56.910 回答