Takes an arbitrary amount of `Graph`

s or `PipeOp`

s (or objects that can be automatically
converted into `Graph`

s or `PipeOp`

s, see `as_graph()`

and `as_pipeop()`

) as inputs and joins
them in a serial `Graph`

, as if connecting them using `%>>%`

.

Care is taken to avoid unnecessarily cloning of components. A call of
`chain_graphs(list(g1, g2, g3, g4, ...), in_place = FALSE)`

is equivalent to
`g1 %>>% g2 %>>!% g3 %>>!% g4 %>>!% ...`

.
A call of `chain_graphs(list(g1, g2, g3, g4, ...), in_place = FALSE)`

is equivalent to `g1 %>>!% g2 %>>!% g3 %>>!% g4 %>>!% ...`

(differing in the
first operator being `%>>!%`

as well).

## Arguments

- graphs
`list`

of (`Graph`

|`PipeOp`

|`NULL`

|`...`

)

List of elements which are the`Graph`

s to be joined. Elements must be convertible to`Graph`

or`PipeOp`

using`as_graph()`

and`as_pipeop()`

.`NULL`

is the neutral element of`%>>%`

and skipped.- in_place
(

`logical(1)`

)

Whether to try to avoid cloning the first element of`graphs`

, similar to the difference of`%>>!%`

over`%>>%`

. This can only be avoided if`graphs[[1]]`

is already a`Graph`

. Beware that, if`chain_graphs()`

fails because of id collisions, then`graphs[[1]]`

will possibly be in an incompletely modified state when`in_place`

is`TRUE`

.

## See also

Other Graph operators:
`%>>%()`

,
`as_graph()`

,
`as_pipeop()`

,
`assert_graph()`

,
`assert_pipeop()`

,
`greplicate()`

,
`gunion()`

,
`mlr_graphs_greplicate`