我正在尝试hyperframe
从包含owin
对象(或任何 spatstat 对象)的列表超帧中制作 spatstat ,但是在使用rbind.hyperframe
命令 indo.call
将列表绑定到更大的列表时会遇到意外行为hyperframe
:
library(spatstat)
circles <- list(large = disc(10), medium = disc(5), small = disc(1))
circle.list <- lapply(names(circles), function(k) hyperframe(name = k, circle = circles[[k]]))
circle.list
# [[1]]
# Hyperframe:
# name circle
# 1 large (owin)
此时,列表可以正常工作。owin
对象分别位于列出的超帧的每个单元格中:
circle.list[[1]]$circle
#window: polygonal boundary
#enclosing rectangle: [-10, 10] x [-10, 10] units
接下来我对超帧使用do.call
命令:rbind
circle.hyperframe <- do.call(rbind.hyperframe, circle.list)
circle.hyperframe
# Hyperframe:
# name circle
# 1 large (list)
# 2 medium (list)
# 3 small (list)
现在圆圈是列表(它们本质上是在 spatstat 中的),但似乎所有这些都绑定在一起:
names(circle.hyperframe[1,]$circle)
# [1] "type" "xrange" "yrange" "bdry" "units" "type" "xrange" "yrange" "bdry"
# [10] "units" "type" "xrange" "yrange" "bdry" "units"
注意一个单元格的三重名称。
我的代码依赖于列表,我非常希望能够将这些列表绑定到一个更大的hyperframe
. 有没有办法解决这种行为,即如何在不绑定“圆形”列中的单元格的情况下绑定超帧?