在R
中,将非均匀G函数应用于我的点模式有些困难。
为了使用GmultiInhom
,我首先尝试将点模式bci.tree8pppa
转换为多类型模式:
bci.tree8multi = ppp(bci.tree8pppa$x, bci.tree8pppa$y, window=owin(c(0,1000), c(0,500)), marks = factor(bci.tree8pppa$marks[,3]))
然后按如下方式应用G功能:
G = GmultiInhom(bci.tree8multi, marks(bci.tree8multi) == species1, marks(bci.tree8multi) == species2, lambdaI = lambda1points, lambdaJ = lambda2points, lambdamin = min(lambda2points), r = c(0,r1,r2,r3))
但这会产生错误:"Error in split.default(X, group) : factor has bad level"
我该如何解决? 预先谢谢你!
答案 0 :(得分:0)
为了那里的所有R
程序员的利益:我在基本"factor has bad level"
系统中将错误消息.Internal(split.default(x,f))
跟踪到R
的C源代码。仅当f
是list
而不是factor
时,才会出现此错误消息。该代码使用执行字符串操作的函数f
将interaction
转换为因子。从结果因子具有“不良水平”的意义上讲,这种转换可能会出错:因子的整数表示包含小于1或大于因子水平数目的值。然后发生错误。
原始帖子未提供有效的示例,因此很难准确地找出spatstat::GmultiInhom
中的代码是如何导致错误类型的数据被馈送到split.default
的。但是,它必须与参数r
的滥用有关。 spatstat
中的代码将被收紧以对r
的格式实施更严格的要求。