The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

zipR vignette

Leslie Huang

2019-03-03

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.