Introducing zipR: zip() for R
zip() is an incredibly handy built-in function in Python. Unlike many
other great Python features/structures (such as iterators, generators,
and dictionaries), zip() is relatively easy to implement in R. Here is a
brief introduction to zipR
.
This is a work in progress! For bugs and features, please
open an issue on
GitHub.
Loading the library
Dummy data
Some sequences of different lengths, in order to test the different
options available in zipr
.
a <- c(1,2,3)
b <- c(4,5,6)
c <- c(1,2,3,4,5,6)
d <- c(7,8)
z <- c(9)
filler <- c(NA)
zip two vectors of the same length
zipR::zipr(a,b)
#> x y
#> 1 1 4
#> 2 2 5
#> 3 3 6
zip two vectors of different lengths, repeating the shorter
vector
broadcast = TRUE
repeats elements of the shorter vector
so that it is the same length as the longer vector
zipr(a, z, broadcast = TRUE)
#> x y
#> 1 1 9
#> 2 2 9
#> 3 3 9
zipr(a, c, broadcast = TRUE)
#> x y
#> 1 1 1
#> 2 2 2
#> 3 3 3
#> 4 1 4
#> 5 2 5
#> 6 3 6
zip two vectors of different lengths, using the default fill
value
fill = TRUE
without a fillvalue
specified
fills in the shorter vector with NA
zipr(z, a, fill = TRUE)
#> x y
#> 1 9 1
#> 2 NA 2
#> 3 NA 3
zip two vectors of different lengths, using a custom fill value
zipr(c,a, fill = TRUE, fillvalue = z)
#> x y
#> 1 1 1
#> 2 2 2
#> 3 3 3
#> 4 4 9
#> 5 5 9
#> 6 6 9
zipr(c,z, fill = TRUE, fillvalue = d)
#> x y
#> 1 1 9
#> 2 2 7
#> 3 3 8
#> 4 4 7
#> 5 5 8
#> 6 6 7