[R] grid with random or clustered distribution

SH emptican at gmail.com
Wed Sep 9 14:49:48 CEST 2015

Hi R-users,

I hope this is not redundant questions.  I tried to search similar threads
relevant to my questions but could not find.  Any input would be greatly

I want to generate grid with binary values (1 or 0) in n1 by n2 (e.g., 100
by 100 or 200 by 500, etc.) given proportions of 1 and 0 values (e.g., 1,
5, or 10% of 1 from 100 by 100 grid).  For clustered distributed grid, I
hope to be able to define cluster size if possible.  Is there a simple way
to generate random/clustered grids with 1 and 0 values with a
pre-defined proportion?

So far, the function "EVariogram" in the "CompRandFld" package generates
clustered grid with 1 and 0.  Especially, the example #4 in the
"EVariogram" function description is a kind of what I want. Below is the
slightly modified code from the original one.  However, the code below
can't control proportion of 1 and 0 values and complicated or I have no
idea how to do it.  I believe there may be easies ways to
generate random/clustered grids with proportional 1 and 0 values.

Thank you very much in advance,



x0 <- seq(1, 50, length.out=50)
y0 <- seq(1, 60, length.out=60)
d <- expand.grid(x=x0, y=y0)
x <- d$x
y <- d$y
# Set the model's parameters:
corrmodel <- 'exponential'
mean <- 0
sill <- 1
nugget <- 0
scale <- 3
# Simulation of the Binary-Gaussian random field:
data <- RFsim(x, y, corrmodel="exponential", model="BinaryGauss",
# Empirical lorelogram estimation:
fit <- EVariogram(data, x, y, numbins=20, maxdist=7, type="lorelogram")
# Results:
plot(fit$centers, fit$variograms, xlab='Distance', ylab="Lorelogram",
     ylim=c(min(fit$variograms), max(fit$variograms)),
     xlim=c(0, max(fit$centers)), pch=20, main="Spatial Lorelogram")
# Plotting
plot(d, type='n')
text(d, label=data)

	[[alternative HTML version deleted]]

More information about the R-help mailing list