【问题标题】:ppp objects not working with deldir functionppp 对象不能与 deldir 函数一起使用
【发布时间】:2021-12-08 08:53:33
【问题描述】:

我正在尝试将deldirppp 对象一起使用,但收到以下错误:

错误:$ 运算符对原子向量无效

这不起作用:

library(deldir)
library(spatstat)
points <- ppp(x=c(-77.308703, -77.256582, -77.290600,  -77.135668, -77.097144),
              y=c(39.288603, 39.147019, 39.372818, 39.401898, 39.689203),
              window=owin(xrange=c(-77.7,-77), yrange=c(39.1, 39.7)))
deldir(points)

但这很好用:

deldir(x=c(-77.308703, -77.256582, -77.290600,  -77.135668, -77.097144),
       y=c(39.288603, 39.147019, 39.372818, 39.401898, 39.689203),
       rw=c(-77.7, -77, 39.1, 39.7))

使用 deldir 的 1.0-5 版、spatstat 的 2.2-0 版和 R 的 4.03 版。我相信上面的代码在以前的版本中有效,但我不确定问题出在哪里。

【问题讨论】:

  • 这个问题已经引起deldir作者的注意了。

标签: spatstat deldir


【解决方案1】:

这是一个错误。已被deldir的作者更正,包的版本1.0-6,刚刚发给CRAN。

【讨论】:

    【解决方案2】:

    spatstat 有自己的 deldir 接口,因为正如您所经历的那样,deldir 不能直接使用 spatstat 对象。试试dirichlet(points)

    编辑: 上面的 Tge 答案是从我手机上的内存中写的(就像这样)。从 spatstat 使用 deldir 的通常方法是通过 spatstat 自己的接口函数是正确的,但是应该可以直接在 ppp 对象上调用 deldir ,这是一个错误,这是不可能的。正如@adrian-baddeley 所说,这已在新版本的 deldir 中得到修复。

    【讨论】:

    • 感谢@Ege,deldir 的手册表明它应该是可能的:,即:“参数 x 可能是一个数字向量,或者它可能是......类“ppp”的对象。”现在不是这样了吗?我尝试直接使用 deldir 的原因是它输出 dirsgs,这是此用例直接需要的,并且过去似乎可以使用:stackoverflow.com/questions/24317733/… 现在该功能在 spatstat 中是否可用 @987654326 @函数?
    • 我应该在上面的评论中写 dirichletEdges() 而不是 dirichletNetwork()。但是,我仍然没有找到复制deldir 输出的方法,因为deldir 的dirsgs 包括每个边缘的结束坐标以及与边缘关联的两个点的ID,而dirichletEdges() 只输出边缘结束。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多