r - 如果它们降落在另一个点的某个附近,我如何生成点被“排斥”的数据?
问题描述
我runifdisc
用来在光盘上绘制随机点,但我不希望这些点落在其他点的某个附近。这些点当前被解析为正方形和三角形。我正在使用该spatstat
软件包。
有没有办法做到这一点?这是我的代码:
dots = runifdisc(210, radius=1)
plot(dots, type="n")
points(dots$x[1:45], dots$y[1:45], pch=15, col="red", cex=2)
points(dots$x[46:90], dots$y[46:90], pch=15, col="red", cex=2)
points(dots$x[91:151], dots$y[91:151], pch=17, col="blue", cex=2)
points(dots$x[152:210], dots$y[152:210], pch=17, col="blue", cex=2)
我什至可能对这些点的均匀分布持开放态度,例如在圆盘内的一个网格上,我可以设置其大小,以确保没有重叠。
解决方案
有执行此操作的函数,spatstat
包括rSSI
、rMaternI
、rMaternII
、和。这取决于您希望积分如何“到达”以及应该如何“击退”它们。rHardcore
rStrauss
rmh
rSSI
: 积分一一到达。每个点都是随机放置的,条件是它不会离现有点太近。当无法在任何地方放置新点时游戏停止(“简单顺序抑制”)rMaternI
: 积分同时到达。然后删除任何离另一个点太近的点。(母体抑制模型 1)rMaternII
:点在一定时间段内随机到达。他们的到达时间被记录下来。在此期间结束时,任何距离较早到达的另一个点太近的点都将被删除。(母体抑制模型 2)rHardcore
和rmh
:点不断到达,在随机时间,永远。如果新到达的点太靠近现有点,则它会被拒绝并删除。现有点具有有限的生命周期,并在其生命周期结束时被删除。此过程运行很长时间,然后拍摄快照。(使用空间生死过程模拟的吉布斯硬核过程)。
中的函数spatstat
已经过彻底调试和测试,因此我建议尽可能使用它们而不是编写新代码。
有关文档,请参阅spatstat 手册的第 5.5 节和第 13 章
推荐阅读
- python - 将图片的RGB颜色组合成一张图片:Python、Cimpl
- c# - C# - “error 1001” - 指定的服务已经存在。如何卸载服务?
- excel - 访问查询不会在工作簿关闭时运行
- typescript - 如何为具有接口的数组声明类型?
- java - 尝试使用媒体在 javafx 中播放音频时出现运行时错误
- puppet - 未创建 Puppet crontab 条目
- c# - 使用 C# .Net Core,如何将文本框的内容传递给模式
- javascript - 这个 parseInt 默认是什么基数?
- testing - 在发出 fetch 请求后,编写 Testcafe 测试以断言加载微调器是可见的
- vba - 带有空指针的 Vba 图表循环