[R] What is an alternative to expand.grid if create a long vector?

Shah Alam dr@@|@m@o|@ng| @end|ng |rom gm@||@com
Mon Apr 19 14:35:45 CEST 2021


Dear All,

I would like to know that is there any problem in *expand.grid* function or
it is a limitation of this function.

I am trying to create a combination of elements using expand.grid function.

A <- expand.grid(
c(seq(0.001, 0.1, length.out = 100)),
c(seq(0.0001, 0.001, length.out = 100)),
c(seq(0.38, 0.42, length.out = 100)),
c(seq(0.12, 0.18, length.out = 100)))

Four combinations work fine. However, If I increase the combinations up to
ten. The following error appears.

 A <- expand.grid(
c(seq(0.001, 1, length.out = 100)),
c(seq(0.0001, 0.001, length.out = 100)),
c(seq(0.38, 0.42, length.out = 100)),
c(seq(0.12, 0.18, length.out = 100)),
c(seq(0.01, 0.04, length.out = 100)),
c(seq(0.0001, 0.001, length.out = 100)),
c(seq(0.0001, 0.001, length.out = 100)),
c(seq(0.001, 0.01, length.out = 100)),
c(seq(0.01, 0.3, length.out = 100))
)

*Error in rep.int <http://rep.int>(rep.int <http://rep.int>(seq_len(nx),
rep.int <http://rep.int>(rep.fac, nx)), orep) :   invalid 'times' value*

After reducing the length to 10. It produced a different type of error

A <- expand.grid(
c(seq(0.001, 0.005, length.out = 10)),
c(seq(0.0001, 0.0005, length.out = 10)),
c(seq(0.38, 0.42, length.out = 5)),
c(seq(0.12, 0.18, length.out = 7)),
c(seq(0.01, 0.04, length.out = 5)),
c(seq(0.0001, 0.001, length.out = 10)),
c(seq(0.0001, 0.001, length.out = 10)),
c(seq(0.001, 0.01, length.out = 10)),
c(seq(0.1, 0.8, length.out = 8))
)

*Error: cannot allocate vector of size 1.0 Gb*

What is an alternative to expand.grid if create a long vector based on 10
elements?

With kind regards,
Shah Alam

	[[alternative HTML version deleted]]



More information about the R-help mailing list