Use this if you are using igraph from R
sample_sbm {igraph}  R Documentation 
Sampling from the stochastic block model of networks
sample_sbm(n, pref.matrix, block.sizes, directed = FALSE, loops = FALSE)
sbm(...)
n 
Number of vertices in the graph. 
pref.matrix 
The matrix giving the Bernoulli rates. This is a

block.sizes 
Numeric vector giving the number of vertices in each group. The sum of the vector must match the number of vertices. 
directed 
Logical scalar, whether to generate a directed graph. 
loops 
Logical scalar, whether selfloops are allowed in the graph. 
... 
Passed to 
This function samples graphs from a stochastic block model by (doing the
equivalent of) Bernoulli trials for each potential edge with the
probabilities given by the Bernoulli rate matrix, pref.matrix
.
The order of the vertices in the generated graph corresponds to the
block.sizes
argument.
An igraph graph.
Gabor Csardi csardi.gabor@gmail.com
Faust, K., & Wasserman, S. (1992a). Blockmodels: Interpretation and evaluation. Social Networks, 14, 5–61.
## Two groups with not only few connection between groups
pm < cbind( c(.1, .001), c(.001, .05) )
g < sample_sbm(1000, pref.matrix=pm, block.sizes=c(300,700))
g