如何准确取消选择 xy % 的网格单元格?

How to exactly unselect xy % of grid cells?

我想从 10*10 光栅中取消选择 90%,即 10% 保持可见。为此,我改编了 this 代码,见下文。但是生成的像素有一些变化(多于 10 个或少于 10 个像素)。是否可以设置随机选择的精度?

r<- raster(ncol=10, nrow=10, xmn=0, ymn=0, xmx=10, ymx=10)#create raster
values(r)<- 1:ncell(1) #asigne 1 to each raster cell
#plot(r, col='black') #plot raster

r[runif(10*10) >= 0.15] <- NA # Randomly *unselect* XY% of the data

par(pty="s", mar=c(1,1,1,1))
plot(r, col='black', legend=FALSE, axes=F) #plot raster
box(lty=1, col="black", lwd=5)

而不是你的 runif 行,使用

r[sample(ncell(r),ncell(r)*0.9)] <- NA

这会随机选择 90% 的单元格。