
Last chance! 50% off unlimited learning
Sale ends in
Draws an optimal sample that minimizes or maximizes the sample variance
optimized.sample.variance(x, n, type = "maximized")
A vector to draw a sample from
Number of samples to draw
Type of sample variance optimization c("maximized", "minimized")
A data.frame with "idx" representing the index of the original vector and "y" is the value of the sampled data
# NOT RUN {
library(sp)
data(meuse)
coordinates(meuse) <- ~x+y
n = 15
# Draw n samples that maximize the variance of y
( max.sv <- optimized.sample.variance(meuse$zinc, 15) )
# Draw n samples that minimize the variance of y
( min.sv <- optimized.sample.variance(meuse$zinc, 15, type="minimized") )
# Plot results
plot(meuse, pch=19, col="grey")
plot(meuse[max.sv$idx,], col="red", add=TRUE, pch=19)
plot(meuse[min.sv$idx,], col="blue", add=TRUE, pch=19)
box()
legend("topleft", legend=c("population","maximized variance",
"minimized variance"), col=c("grey","red","blue"),
pch=c(19,19,19))
# }
# NOT RUN {
# Raster example (not memory safe)
library(raster)
r <- raster(system.file("external/test.grd", package="raster"))
# Calculate optimal sample variance and coerce to SpatialPointDataFrame using xyFromCell
( min.sv <- optimized.sample.variance(getValues(r), n, type="minimized") )
min.sv <- sp::SpatialPointsDataFrame(xyFromCell(r, min.sv[,"idx"],
spatial=TRUE), data=min.sv)
( max.sv <- optimized.sample.variance(getValues(r), n) )
max.sv <- sp::SpatialPointsDataFrame(xyFromCell(r, max.sv[,"idx"],
spatial=TRUE), data=max.sv)
plot(r)
plot(max.sv, col="blue", add=TRUE, pch=19)
plot(min.sv, col="red", add=TRUE, pch=19)
box()
legend("topleft", legend=c("maximized variance", "minimized variance"),
col=c("red","blue"), pch=c(19,19))
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab