Skip to contents

Chunk atomic vectors into parts of roughly equal size. chunk() takes a vector length n and returns an integer with chunk numbers. chunk_vector() uses base::split() and chunk() to split an atomic vector into chunks.

Usage

chunk_vector(x, n_chunks = NULL, chunk_size = NULL, shuffle = TRUE)

chunk(n, n_chunks = NULL, chunk_size = NULL, shuffle = TRUE)

Arguments

x

(vector())
Vector to split into chunks.

n_chunks

(integer(1))
Requested number of chunks. Mutually exclusive with chunk_size and props.

chunk_size

(integer(1))
Requested number of elements in each chunk. Mutually exclusive with n_chunks and props.

shuffle

(logical(1))
If TRUE, permutes the order of x before chunking.

n

(integer(1))
Length of vector to split.

Value

chunk() returns a integer() of chunk indices, chunk_vector() a list() of integer vectors.

Examples

x = 1:11

ch = chunk(length(x), n_chunks = 2)
table(ch)
#> ch
#> 1 2 
#> 6 5 
split(x, ch)
#> $`1`
#> [1]  1  2  6  7 10 11
#> 
#> $`2`
#> [1] 3 4 5 8 9
#> 

chunk_vector(x, n_chunks = 2)
#> [[1]]
#> [1] 1 2 3 4 5 7
#> 
#> [[2]]
#> [1]  6  8  9 10 11
#> 

chunk_vector(x, n_chunks = 3, shuffle = TRUE)
#> [[1]]
#> [1] 1 3 7 8
#> 
#> [[2]]
#> [1] 2 4 5 6
#> 
#> [[3]]
#> [1]  9 10 11
#>