This vignette shows an overview of known data types and theirabbreviations, and their origin. For example,<int>in the header of a column indicates an integer column, and<chr> denotes a character column.
| Class | Data type | Example | Column header |
|---|---|---|---|
| Atomic | logical | TRUE | lgl |
| integer | 1L | int | |
| double | 1.5 | dbl | |
| character | "A" | chr | |
| complex | 0+1i | cpl | |
| raw | as.raw(1) | raw | |
| list | list(1) | list | |
| named list | list(a = 1) | named list | |
| Built-in objects | factor | factor("A") | fct |
| ordered | ordered("a") | ord | |
| Date | Sys.Date() | date | |
| POSIXt | Sys.time() | dttm | |
| difftime | vctrs::new_duration(1) | drtn | |
| Objects from other packages | hms | hms::hms(1) | time |
| integer64 | bit64::as.integer64(1e+10) | int64 | |
| blob | blob::blob(raw(1)) | blob | |
| Data frames | data.frame | data.frame(a = 1) | df[,1] |
| tbl_df | tibble(a = 1) | tibble[,1] | |
| Unchanged | AsIs | I(1L) | I |
| vctrs types | unspecified | vctrs::unspecified(1) | ??? |
| vctrs_list_of | vctrs::list_of(c(1L)) | list | |
| vctrs_vctr | vctrs::new_vctr(1L) | vctrs_vc | |
| vctrs_partial_factor | vctrs::partial_factor(letters) | prtl_fctr | |
| vctrs_partial_frame | vctrs::partial_frame(a = 1) | prtl | |
| Language objects | function | function() NULL | fn |
| symbol | quote(a) | sym | |
| expression | parse(text = "a <- 1\nb<- 2") | expression | |
| quosures | rlang::quos(a = 1) | quos |
The following overview contains example values for each type:
#> Rows: 1#> Columns: 23#> $ logical <lgl> TRUE#> $ integer <int> 1#> $ double <dbl> 1.5#> $ character <chr> "A"#> $ complex <cpl> 0+1i#> $ raw <raw> 01#> $ list <list> 1#> $ `named list` <named list> 1#> $ factor <fct> A#> $ ordered <ord> a#> $ Date <date> 2025-06-07#> $ POSIXt <dttm> 2025-06-07 10:54:32#> $ difftime <drtn> 1 secs#> $ hms <time> 00:00:01#> $ integer64 <int64> 10000000000#> $ blob <blob> 00#> $ data.frame <df[,1]> <data.frame[1 x 1]>#> $ tbl_df <tibble[,1]> <tbl_df[1 x 1]>#> $ AsIs <I<int>> 1#> $ unspecified <???> NA#> $ vctrs_list_of <list<int>> 1#> $ vctrs_vctr <vctrs_vc> 1#> $ quosures <quos> <~1>The column header is obtained by callingpillar::type_sum() on the column. This is an S3 method thatcan be overridden, but most of the time it is more useful to overridevctrs::vec_ptype_abbr():
pillar:::type_sum.default#> function (x)#> {#> pillar_attr <- attr(x, "pillar", exact = TRUE)#> label <- pillar_attr$label#> if (!is.null(label)) {#> return(I(label))#> }#> if (is.object(x) || vec_is(x)) {#> return(vec_ptype_abbr(x))#> }#> switch(typeof(x), builtin = , special = , closure = "fn",#> environment = "env", symbol = if (is_missing(x)) {#> "missing"#> } else {#> "sym"#> }, typeof(x))#> }#> <bytecode: 0x12ab321f0>#> <environment: namespace:pillar>