使用R生成3个不同空间分布点(N = 20个点)的简单方法。例如,1)随机,2)均匀,3)聚集在同一空间(50 x 50)网格)?
答案 0 :(得分:0)
1)这是一种在每个方向1个编号的25乘25网格中获得5个点的非常均匀间距的方法。把点放在(3,18),(8,3),(13,13),(18,23),(23,8);你应该能够从那里推广。
2)正如你的建议,你可以使用runif
...但我已经从你的问题中假设你实际上想要点上的点(即整数),在这种情况下你可以使用{{1 }}。
您确定要连续而非离散的随机变量吗?
3)这个是“未确定的” - 取决于你想要如何定义事物,你可以通过多种方式来实现它。例如如果它在网格上,你可以采样点,使得已经采样点的接近(但不完全相同)的点的概率远远高于远离的点;类似的设置适用于连续变量。或者你可以产生比你需要的更多的点,并消除最孤独的点。或者你可以从随机均匀点开始,然后让它们倾向于他们的邻居。或者你可以生成一些集群中心(例如4-10),然后分散关于这些中心的点。或者你可以做其他一百件事。
答案 1 :(得分:0)
有点晚了,但是上面的答案并没有真正解决问题。这是您要寻找的东西:
threshold
首先:随机抽样
library(sp)
# make a grid of size 50*50
x1<-seq(1:50)-0.5
x2<-x1
grid<-expand.grid(x1,x2)
names(grid)<-c("x1","x2")
# make a grid a spatial object
coordinates(grid) <- ~x1+x2
gridded(grid) <- TRUE
第二:定期抽样
# random sampling
random.pt <- spsample(x = grid, n= 20, type = 'random')
第三:聚集在距随机位置2的距离处(可以进入该区域之外)
# regular sampling
regular.pt <- spsample(x = grid, n= 20, type = 'regular')