Learn R Programming

spatialEco (version 1.3-5)

optimized.sample.variance: Optimized sample variance

Description

Draws an optimal sample that minimizes or maximizes the sample variance

Usage

optimized.sample.variance(x, n, type = "maximized")

Arguments

x

A vector to draw a sample from

n

Number of samples to draw

type

Type of sample variance optimization c("maximized", "minimized")

Value

A data.frame with "idx" representing the index of the original vector and "y" is the value of the sampled data

Examples

Run this code
# 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