R中的卡方色散测试出错

时间:2015-01-27 18:24:32

标签: python r spatstat

我是R的新手,正在尝试确定包含~500k点的形状文件是否随机分布。无论我为参数输入什么,我都会收到相同的错误消息。

以下是我从一开始就拥有的内容:

> library(spatstat)

spatstat 1.40-0       (nickname: ‘Do The Maths’) 
For an introduction to spatstat, type ‘beginner’
> as.ppp(area)
marked planar point pattern: 500000 points
Mark variables: 
[1] OBJECTID   Encoded_Ti Time_      Filter     Category   Severity      Action_    Hit_Count  Profile    Encoded_So Source_IP  Source_Por Encoded_De
[14] Dest_IP    Dest_Port  VLAN_Tag   Source_Cou Source_Reg Source_Cit     Source_Lat Source_Lon Dest_Count Dest_Regio Dest_City  Dest_Latit Dest_Longi
window: rectangle = [-159.964, 178.417] x [-46.4, 70.6349] units
Warning message:
some mark values are NA in the point pattern x 
> quadrat.test(area)
Error in UseMethod("quadrat.test") : 
no applicable method for 'quadrat.test' applied to an object of class          "c('SpatialPointsDataFrame', 'SpatialPoints', 'Spatial')"


<bytecode: 0x0000000024e7a660>
<environment: namespace:spatstat>

所以我的下一次尝试是:

> X <- ppp(x, y, c(-159.964, 178.417), c(-46.4, 70.6349))
Warning message:
In ppp(x, y, c(-159.964, 178.417), c(-46.4, 70.6349)) :
data contain duplicated points
> quadrat.test(X)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) : 
xbreaks do not span the actual range of x coordinates in data

和我最后的尝试:

> quadrat.test(X, nx = 20, ny = 20)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) : 
xbreaks do not span the actual range of x coordinates in data
> quadrat.test(X, nx = 20, ny = 20, xbreaks= NULL, ybreaks = NULL)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) : 
xbreaks do not span the actual range of x coordinates in data
> data(X)
Warning message:
In data(X) : data set ‘X’ not found
> quadrat.test(X)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) : 
xbreaks do not span the actual range of x coordinates in data
> quadrat.test(X, 10)
Error in rectquadrat.countEngine(X$x, X$y, tess$xgrid, tess$ygrid) : 
xbreaks do not span the actual range of x coordinates in data

就像我说的那样,我是非常新的并且只有业余的python经验,但我是一名需要将这个功能用于项目的研究生。任何帮助将不胜感激。

干杯

1 个答案:

答案 0 :(得分:0)

您应该知道R(几乎)永远不会改变您的输入变量,因此您需要为命令分配输出并从那里开始工作。具体来说,如果area是一个可以通过ppp转换为as.ppp对象的变量,那么您应该为结果命名:

X <- as.ppp(area)

然后,您可以将quadratcountquadrat.test函数应用于新创建的ppp对象:

quadratcount(X, nx=20, ny=20)
quadrat.test(X, nx=20, ny=20)

对于方形计数,使用~500k点20×20网格对于样方可能看起来像一个非常大的空间尺度,但这当然取决于您的具体设置。

由于您还没有提供可重现的示例,我无法说明这些命令是否适用于您的设置,但它们可以使用适当的数据。