Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/krlmlr/awesome-vctrs
A curated list of amazingly awesome R vector classes
https://github.com/krlmlr/awesome-vctrs
List: awesome-vctrs
r vctrs
Last synced: 3 days ago
JSON representation
A curated list of amazingly awesome R vector classes
- Host: GitHub
- URL: https://github.com/krlmlr/awesome-vctrs
- Owner: krlmlr
- Created: 2020-03-03T09:39:49.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-01-11T19:19:23.000Z (10 months ago)
- Last Synced: 2024-05-20T23:23:49.406Z (6 months ago)
- Topics: r, vctrs
- Homepage:
- Size: 125 KB
- Stars: 111
- Watchers: 5
- Forks: 16
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- ultimate-awesome - awesome-vctrs - A curated list of amazingly awesome R vector classes. (Other Lists / PowerShell Lists)
- jimsghstars - krlmlr/awesome-vctrs - A curated list of amazingly awesome R vector classes (Others)
README
# Awesome VectoRs
A curated list of amazingly awesome R vector classes, and the packages that provide them.
## Contributing
Please read [CONTRIBUTING](./CONTRIBUTING.md) if you wish to add a new vector class.
## Table of Contents
- [Awesome VectoRs](#awesome-vectors)
- [Contributing](#contributing)
- [Table of Contents](#table-of-contents)
- [Numbers](#numbers)
- [base](#base)
- [bignum](#bignum)
- [debkeepr](#debkeepr)
- [errors](#errors)
- [fracture](#fracture)
- [nombre](#nombre)
- [pillar](#pillar)
- [quantities](#quantities)
- [units](#units)
- [Date and time](#date-and-time)
- [aweek](#aweek)
- [base](#base)
- [clock](#clock)
- [dint](#dint)
- [era](#era)
- [hms](#hms)
- [intermittent](#intermittent)
- [tsibble](#tsibble)
- [Strings](#strings)
- [base](#base)
- [charcuterie](#charcuterie)
- [pillar](#pillar)
- [Compound](#compound)
- [biblids](#biblids)
- [blob](#blob)
- [dialr](#dialr)
- [haven](#haven)
- [intrval](#intrval)
- [ivs](#ivs)
- [term](#term)
- [tf](#tf)
- [units](#units)
- [Computing](#computing)
- [ipaddress](#ipaddress)
- [Geospatial](#geospatial)
- [geos](#geos)
- [sf](#sf)
- [s2](#s2)
- [wk](#wk)
- [Internal](#internal)
- [textrecipes](#textrecipes)
- [Colours](#colours)
- [palettes](#palettes)
- [Resources](#resources)
- [Books](#books)
- [Repositories](#repositories)
- [Blog posts](#blog-posts)
- [Talks](#talks)
- [License](#license)## Numbers
*Classes that wrap numbers.*
### [base](https://rdrr.io/r/base/)
* [`hexmode`](https://rdrr.io/r/base/hexmode.html) - Hexadecimal numbers: [`2A`](reprex/hexmode.md)
* [`integer`](https://rdrr.io/r/base/integer.html) - 32-bit integers: [`1`](reprex/integer.md)
* [`numeric`](https://rdrr.io/r/base/numeric.html) - Floating-point numbers: [`1.234567`](reprex/numeric.md)
* [`numeric_version`](https://rdrr.io/r/base/numeric_version.html) - Software versions: [`'1.23.456'`](reprex/numeric_version.md)
* [`octmode`](https://rdrr.io/r/base/octmode.html) - Octal numbers: [`52`](reprex/octmode.md)### [bignum](https://davidchall.github.io/bignum/)
* [`bigfloat`](https://davidchall.github.io/bignum/reference/bigfloat.html) - High precision numbers: [`0.33333333333333333333333333333333333333333333333333`](reprex/bigfloat.md)
* [`biginteger`](https://davidchall.github.io/bignum/reference/biginteger.html) - Arbitrary precision integers: [`25852016738884976640000`](reprex/biginteger.md)### [debkeepr](https://jessesadler.github.io/debkeepr/)
* [`deb_decimal`](https://jessesadler.github.io/debkeepr/reference/deb_decimal.html) - Non-decimal currencies as `double` with `unit` and `bases` attributes: [`3.825`](reprex/deb_decimal.md)
* [`deb_lsd`](https://jessesadler.github.io/debkeepr/reference/deb_lsd.html) - Tripartite non-decimal currencies: [`8:13s:4d`](reprex.deb_lsd.md)
* [`deb_tetra`](https://jessesadler.github.io/debkeepr/reference/deb_tetra.html) - Tetrapartite non-decimal currencies: [`8:13s:4d:3f`](reprex.deb_tetra.md)### [errors](https://r-quantities.github.io/errors/)
* [`errors`](https://r-quantities.github.io/errors/reference/errors.html) - Numbers with uncertainty: [`1 ± 0.3`](reprex/errors.md)
### [fracture](https://fracture.rossellhayes.com/)
* [`fracture`](https://fracture.rossellhayes.com/reference/fracture.html) - Fractions: [`1/3`](reprex/fracture.md)
### [nombre](https://nombre.rossellhayes.com/)
* [`nombre`](https://nombre.rossellhayes.com/) - Number names: [`one`](reprex/nombre.md)
### [pillar](https://pillar.r-lib.org/)
* [`num`](https://pillar.r-lib.org/reference/num) - Numbers with formatting: [`1.00`](reprex/num.md)
### [quantities](https://r-quantities.github.io/quantities/)
* [`quantities`](https://r-quantities.github.io/quantities/reference/quantities.html) - Numbers with units and uncertainty: [`1 ± 0.3 [m/s]`](reprex/quantities.md)
### [units](https://r-quantities.github.io/units/)
* [`units`](https://r-quantities.github.io/units/reference/set_units.html) - Numbers with units: [`1 [m/s]`](reprex/units.md)
## Date and time
*Classes that wrap dates and times.*
### [aweek](https://www.repidemicsconsortium.org/aweek/)
* [`aweek`](https://www.repidemicsconsortium.org/aweek) - Weeks that start on any day of the week: [`2020-W10-2`](reprex/aweek.md)
### [base](https://rdrr.io/r/base/)
* [`POSIXct`](https://rdrr.io/r/base/as.POSIXlt.html) - Calendar time with time zone, stored as days since epoch: [`2020-03-03 09:16:17 CET`](reprex/POSIXct.md)
* [`POSIXlt`](https://rdrr.io/r/base/as.POSIXlt.html) - Calendar time with time zone, stored as record of components: [`2020-03-03 09:16:17 CET`](reprex/POSIXlt.md)### [clock](https://clock.r-lib.org/)
* [`calendar`](https://clock.r-lib.org/reference/year_month_day.html) - Alternative representations of calendar dates, such as year-quarter-day or year-month-weekday: [`2019-02-Sun[2]`](reprex/calendar.md)
* [`time_point`](https://clock.r-lib.org/reference/index.html#section-time-points) - Variable precision points in time, with and without time zones: [`"2020-02-01 02:03:04.000005"`](reprex/time_point.md)### [dint](https://s-fleck.github.io/dint/)
* [`date_y`](https://s-fleck.github.io/dint/reference/date_y.html) - Years: [`2020`](reprex/date_xx.md)
* [`date_yq`](https://s-fleck.github.io/dint/reference/date_yq.html) - Year-quarter: [`2020-Q1`](reprex/date_xx.md)
* [`date_ym`](https://s-fleck.github.io/dint/reference/date_ym.html) - Year-month: [`2013-M12`](reprex/date_xx.md)
* [`date_yw`](https://s-fleck.github.io/dint/reference/date_yw.html) - Year-week: [`2013-W12`](reprex/date_xx.md)### [era](https://era.joeroe.io/)
* [`yr`](https://era.joeroe.io/reference/yr.html) - Year-based time scales: [`4.2 ka`](reprex/yr.md)
### [hms](https://hms.tidyverse.org/)
* [`hms`](https://hms.tidyverse.org/reference/hms.html) - Time of day: [`12:34:56`](reprex/hms.md)
### [intermittent](https://github.com/ir-sfsu/intermittent/)
* [`term`](https://github.com/ir-sfsu/intermittent) - Represent ordinal academic semesters: [`20164`](reprex/intermittent.md)
### [tsibble](https://tsibble.tidyverts.org/)
* [`yearmonth`](https://tsibble.tidyverts.org/reference/year-month.html) - Year-month: [`2016 Jan`](reprex/yearxx.md)
* [`yearquarter`](https://tsibble.tidyverts.org/reference/year-quarter.html) - Year-quarter: [`2016 Q1`](reprex/yearxx.md)
* [`yearweek`](https://tsibble.tidyverts.org/reference/year-week.html) - Year-week: [`2021 W50`](reprex/yearxx.md)## Strings
*Classes that wrap character strings.*
### [base](https://rdrr.io/r/base/)
* [`character`](https://rdrr.io/r/base/character.html) - Strings: [`"a"`](reprex/character.md)
### [charcuterie](https://jonocarroll.github.io/charcuterie/)
* [`chars`](https://jonocarroll.github.io/charcuterie/articles/use_cases.html) - Strings as iterable sets of characters: [`"abc"` (class `chars`)](reprex/chars.md)
### [pillar](https://pillar.r-lib.org/)
* [`char`](https://pillar.r-lib.org/reference/char) - Strings with minimum width and custom abbreviation: [`abc…xyz`](reprex/char.md)
## Compound
*Classes that wrap complex objects.*
### [biblids](https://maxheld.de/biblids/)
* [`doi`](https://subugoe.github.io/biblids/reference/doi.html) - Digital Object Identifiers (DOIs): [`10.1000/1`](reprex/doi.md)
### [blob](https://blob.tidyverse.org/)
* [`blob`](https://blob.tidyverse.org/reference/blob.html) - Binary Large OBjects: [`blob[42 B]`](reprex/blob.md)
### [dialr](https://socialresearchcentre.github.io/dialr/)
* [`phone`](https://socialresearchcentre.github.io/dialr/reference/dialr-phone.html) - Phone numbers parsed with Google's [libphonenumber](https://github.com/google/libphonenumber) for formatting and further processing: [`# Parsed phone numbers: 5 total, 4 successfully parsed`](reprex/phone.md)
### [haven](https://haven.tidyverse.org/)
* [`labelled`](https://haven.tidyverse.org/reference/labelled.html) - Labelled vectors: [` 3` with labels](reprex/labelled.md)
### [intrval](https://github.com/psolymos/intrval/)
* [`intrval`](https://github.com/psolymos/intrval) - Relational operators for intervals: [`x %[]% c(a, b)`](reprex/intrval.md)
### [ivs](https://davisvaughan.github.io/ivs/)
* [`iv`](https://davisvaughan.github.io/ivs/) - Interval vectors: [`[2019-01-05, 2019-05-06) [2019-01-06, 2019-05-22)`](reprex/iv.md)
### [units](https://r-quantities.github.io/units/)
* [`mixed_units`](https://r-quantities.github.io/units/reference/mixed_units.html) - Numbers with different units: [`1 [m], 2 [kg]`](reprex/mixed_units.md)
### [term](https://poissonconsulting.github.io/term/)
* [`term`](https://poissonconsulting.github.io/term/) - Labels for values in numeric objects: [`beta[1,2]`](reprex/term.md)
### [tf](https://tidyfun.github.io/tf/)
* [`tfd`](https://tidyfun.github.io/tf/reference/tfd.html) - Tidy functional data: [`(0.0, 2.84);(0.5, -0.51);(1.0, -0.51)`](reprex/tfd.md)
* [`tfb`](https://tidyfun.github.io/tf/reference/tfb.html) - Tidy functional basis data: [`(0.0, 2.84);(0.5, -0.51);(1.0, -0.51)`](reprex/tfb.md)## Computing
*Classes related to computing*
### [ipaddress](https://davidchall.github.io/ipaddress/)
* [`ip_address`](https://davidchall.github.io/ipaddress/reference/ip_address.html) - IP address: [`192.168.0.1`](reprex/ip_address.md)
* [`ip_interface`](https://davidchall.github.io/ipaddress/reference/ip_interface.html) - IP interface: [`192.168.0.1/24`](reprex/ip_interface.md)
* [`ip_network`](https://davidchall.github.io/ipaddress/reference/ip_network.html) - IP network: [`192.168.0.0/24`](reprex/ip_network.md)## Geospatial
*Classes related to geospatial*
### [geos](https://paleolimbot.github.io/geos/)
- [`geos_geometry`](https://paleolimbot.github.io/geos/reference/as_geos_geometry.html) - Geometry vector as GEOS external pointers: [``](reprex/geos_geometry.md)
### [s2](https://r-spatial.github.io/s2/)
- [`s2_geography`](https://r-spatial.github.io/s2/reference/as_s2_geography.html), [`s2_cell`](https://r-spatial.github.io/s2/reference/s2_cell.html) - Geometry vector of points on the sphere as external pointers to S2 objects, S2 cell IDs as 64-bit integers: [``](reprex/s2_geography.md)
### [sf](https://r-spatial.github.io/sf/)
- [`sfc`](https://r-spatial.github.io/sf/reference/sfc.html) - Geometry vector in spatial data frames: [`POINT (0 1)`](reprex/sfc.md)
### [wk](https://paleolimbot.github.io/wk/)
- [`crc`](https://paleolimbot.github.io/wk/reference/crc.html) - Circle: [`[1 2, r = 0.5]`](reprex/wk_crc.md)
- [`wkb`](https://paleolimbot.github.io/wk/reference/wkb.html) - Well-known binary geometry: [``](reprex/wk_wkb.md)
- [`wkt`](https://paleolimbot.github.io/wk/reference/wkt.html) - Well-known text geometry: [`POINT (0 1)`](reprex/wk_wkt.md)
- [`xy`](https://paleolimbot.github.io/wk/reference/xy.html) - Points: [`(1 4)`](reprex/wk_xy.md)
- [`rct`](https://paleolimbot.github.io/wk/reference/rct.html) - Rectangle: [`[1 2 3 4]`](reprex/wk_rct.md)## Internal
*Classes implemented by packages for their own use*
### [textrecipes](https://tidymodels.github.io/textrecipes/)
* [`tokenlist`](https://tidymodels.github.io/textrecipes/dev/articles/tokenlist.html) - List of tokens: [`[3 tokens]` with number of unique tokens](reprex/tokenlist.md)
## Colours
*Classes related to colours*
### [palettes](https://mccarthy-m-g.github.io/palettes/)
* [`palettes_colour`](https://mccarthy-m-g.github.io/palettes/reference/pal_colour.html) - Colours: $\color{red}{\bullet}$ [` #FF0000`](reprex/palettes.md)
* [`palettes_palette`](https://mccarthy-m-g.github.io/palettes/reference/pal_palette.html) - Colour palettes: $\color{red}{\bullet}$ [` #FF0000`](reprex/palettes.md)# Resources
## Books
* [Advanced R](https://adv-r.hadley.nz/) by Hadley Wickham
## Repositories
* [vctrs](https://vctrs.r-lib.org/): simplifies creating vector classes
## Blog posts
* [Earo Wang: A practical guide to vctrs-powered S3 programming](https://blog.earo.me/2019/11/03/practical-guide-to-s3/): using vctrs for turtle graphics
## Talks
* [Jesse Sadler, vctrs: Creating custom vector classes with the vctrs package at RStudio::conf2020](https://resources.rstudio.com/rstudio-conf-2020/vctrs-creating-custom-vector-classes-with-the-vctrs-package-jesse-sadler) with the companion tutorial [debvctrs](https://github.com/jessesadler/debvctrs)
## License
![cc license](http://i.creativecommons.org/l/by-sa/4.0/88x31.png)
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International](http://creativecommons.org/licenses/by-sa/4.0/) license.