我在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"
我该如何解决这个问题呢?提前谢谢你!
发布于 2020-04-22 09:53:25
为了方便R程序员:我跟踪了错误消息"factor has bad level"到基本R系统中.Internal(split.default(x,f))的C源代码。仅当f是list而不是factor时,才会出现此错误消息。代码使用interaction函数将f转换为因子,该函数执行字符串操作。这种转换可能会出错,因为所得到的因子具有“坏级别”:因子的整数表示包括小于1或大于因子级别数的值。然后就会发生错误。
最初的帖子没有提供工作示例,因此很难准确地弄清楚spatstat::GmultiInhom中的代码是如何导致向split.default提供错误类型的数据的。但是,它必须与参数r的误用有关。spatstat中的代码将被收紧,以对r格式执行更严格的要求。
https://stackoverflow.com/questions/61115114
复制相似问题