Skip to content

Instantly share code, notes, and snippets.

@egouldo
Created March 8, 2021 08:24
Show Gist options
  • Save egouldo/974c90bf68cca86cc687d7dcceef2f18 to your computer and use it in GitHub Desktop.
Save egouldo/974c90bf68cca86cc687d7dcceef2f18 to your computer and use it in GitHub Desktop.
Rmarkdown reprex illustrating unexpected pointblank rendering behaviour
title author date output
Reprex: rendering fails or incomplete for list of pointblank tables in rmarkdown documents
Elliot Gould
08/03/2021
html_document keep_md
true

data("small_table")df <- tibble(id = c(1,2), data = list(small_table))validate_small_table <- function(data){ al <- action_levels(warn_at = 0.1, stop_at = 0.2)

agent <- create_agent( tbl = small_table, tbl_name = "small_table", label = "VALID-I Example No. 2", actions = al ) %>% col_is_posix(vars(date_time),label = "check that date_time col is posix") %>% col_vals_in_set(vars(f), set = c("low", "mid")) %>% col_vals_lt(vars(a), value = 7) %>% col_vals_regex(vars(b), regex = "^[0-9]-[a-w]{3}-[2-9]{3}$") %>% col_vals_between(vars(d), left = 0, right = 4000) %>% interrogate()

return(agent) }validate_small_table(small_table)<style>@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"); @import url("https://unpkg.com/balloon-css/balloon.min.css"); html { font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif; }

#pb_agent .gt_table { display: table; border-collapse: collapse; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }

#pb_agent .gt_heading { background-color: #FFFFFF; text-align: center; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }

#pb_agent .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }

#pb_agent .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 0; padding-bottom: 4px; border-top-color: #FFFFFF; border-top-width: 0; }

#pb_agent .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }

#pb_agent .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }

#pb_agent .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 6px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }

#pb_agent .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }

#pb_agent .gt_column_spanner_outer:first-child { padding-left: 0; }

#pb_agent .gt_column_spanner_outer:last-child { padding-right: 0; }

#pb_agent .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 6px; overflow-x: hidden; display: inline-block; width: 100%; }

#pb_agent .gt_group_heading { padding: 8px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; }

#pb_agent .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }

#pb_agent .gt_from_md > :first-child { margin-top: 0; }

#pb_agent .gt_from_md > :last-child { margin-bottom: 0; }

#pb_agent .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }

#pb_agent .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 12px; }

#pb_agent .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }

#pb_agent .gt_first_summary_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }

#pb_agent .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }

#pb_agent .gt_first_grand_summary_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }

#pb_agent .gt_striped { background-color: rgba(128, 128, 128, 0.05); }

#pb_agent .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }

#pb_agent .gt_footnotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }

#pb_agent .gt_footnote { margin: 0px; font-size: 90%; padding: 4px; }

#pb_agent .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }

#pb_agent .gt_sourcenote { font-size: 90%; padding: 4px; }

#pb_agent .gt_left { text-align: left; }

#pb_agent .gt_center { text-align: center; }

#pb_agent .gt_right { text-align: right; font-variant-numeric: tabular-nums; }

#pb_agent .gt_font_normal { font-weight: normal; }

#pb_agent .gt_font_bold { font-weight: bold; }

#pb_agent .gt_font_italic { font-style: italic; }

#pb_agent .gt_super { font-size: 65%; }

#pb_agent .gt_footnote_marks { font-style: italic; font-size: 65%; }

#pb_agent { -webkit-font-smoothing: antialiased; }

#pb_agent .gt_row { overflow: visible; }

#pb_agent .gt_sourcenote { height: 35px; padding: 0; }

#pb_agent code { font-family: 'IBM Plex Mono', monospace, courier; background-color: transparent; padding: 0; } </style>

Pointblank Validation
VALID-I Example No. 2

tibble small_tableWARN 0.10 STOP 0.20 NOTIFY
STEP COLUMNS VALUES TBL EVAL ⋅ ⋅ ⋅ PASS FAIL W S N EXT
1
T

check that date_time col is posix

col_is_posix()

date_time

1 1
1.00
0
0.00

2
 col_vals_in_set()

f

low, mid

13 7
0.54
6
0.46

CSV
3
 col_vals_lt()

a

7

13 11
0.85
2
0.15

CSV
4
 col_vals_regex()

b

^[0-9]-[a-w]{3}-[2-9]{3}$

13 6
0.46
7
0.54

CSV
5
 col_vals_between()

d

[0, 4,000]

13 12
0.92
1
0.08

CSV
2021-03-08 19:24:20 AEDT< 1 s2021-03-08 19:24:20 AEDT
df <- tibble(id = c(1,2), data = list(small_table)) %>% mutate(result = map(.x = data, .f = ~ validate_small_table(.x)))df$result # will not render without setting 'results = 'asis'' in chunk opts## [[1]] ## ## [[2]] df$result[[1]] # renders without setting 'results = 'asis'' in chunk opts<style>@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"); @import url("https://unpkg.com/balloon-css/balloon.min.css"); html { font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif; }

#pb_agent .gt_table { display: table; border-collapse: collapse; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }

#pb_agent .gt_heading { background-color: #FFFFFF; text-align: center; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }

#pb_agent .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }

#pb_agent .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 0; padding-bottom: 4px; border-top-color: #FFFFFF; border-top-width: 0; }

#pb_agent .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }

#pb_agent .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }

#pb_agent .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 6px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }

#pb_agent .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }

#pb_agent .gt_column_spanner_outer:first-child { padding-left: 0; }

#pb_agent .gt_column_spanner_outer:last-child { padding-right: 0; }

#pb_agent .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 6px; overflow-x: hidden; display: inline-block; width: 100%; }

#pb_agent .gt_group_heading { padding: 8px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; }

#pb_agent .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }

#pb_agent .gt_from_md > :first-child { margin-top: 0; }

#pb_agent .gt_from_md > :last-child { margin-bottom: 0; }

#pb_agent .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }

#pb_agent .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 12px; }

#pb_agent .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }

#pb_agent .gt_first_summary_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }

#pb_agent .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }

#pb_agent .gt_first_grand_summary_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }

#pb_agent .gt_striped { background-color: rgba(128, 128, 128, 0.05); }

#pb_agent .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }

#pb_agent .gt_footnotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }

#pb_agent .gt_footnote { margin: 0px; font-size: 90%; padding: 4px; }

#pb_agent .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }

#pb_agent .gt_sourcenote { font-size: 90%; padding: 4px; }

#pb_agent .gt_left { text-align: left; }

#pb_agent .gt_center { text-align: center; }

#pb_agent .gt_right { text-align: right; font-variant-numeric: tabular-nums; }

#pb_agent .gt_font_normal { font-weight: normal; }

#pb_agent .gt_font_bold { font-weight: bold; }

#pb_agent .gt_font_italic { font-style: italic; }

#pb_agent .gt_super { font-size: 65%; }

#pb_agent .gt_footnote_marks { font-style: italic; font-size: 65%; }

#pb_agent { -webkit-font-smoothing: antialiased; }

#pb_agent .gt_row { overflow: visible; }

#pb_agent .gt_sourcenote { height: 35px; padding: 0; }

#pb_agent code { font-family: 'IBM Plex Mono', monospace, courier; background-color: transparent; padding: 0; } </style>

Pointblank Validation
VALID-I Example No. 2

tibble small_tableWARN 0.10 STOP 0.20 NOTIFY
STEP COLUMNS VALUES TBL EVAL ⋅ ⋅ ⋅ PASS FAIL W S N EXT
1
T

check that date_time col is posix

col_is_posix()

date_time

1 1
1.00
0
0.00

2
 col_vals_in_set()

f

low, mid

13 7
0.54
6
0.46

CSV
3
 col_vals_lt()

a

7

13 11
0.85
2
0.15

CSV
4
 col_vals_regex()

b

^[0-9]-[a-w]{3}-[2-9]{3}$

13 6
0.46
7
0.54

CSV
5
 col_vals_between()

d

[0, 4,000]

13 12
0.92
1
0.08

CSV
2021-03-08 19:24:22 AEDT< 1 s2021-03-08 19:24:22 AEDT
df$result %>% map(get_agent_report) # does not render without specifying results opt## [[1]] ## ## [[2]]

In the next chunk below, I've set the chunk opt for results to asis:

df$result %>% map(get_agent_report) # renders, but not completely[[1]]

[[2]]

Created on 2021-03-08 by the reprex package (v1.0.0)

Session info sessioninfo::session_info()## ─ Session info ────────────────────────────────────── ## setting value ## version R version 4.0.3 (2020-10-10) ## os macOS Catalina 10.15.7 ## system x86_64, darwin17.0 ## ui RStudio ## language (EN) ## collate en_AU.UTF-8 ## ctype en_AU.UTF-8 ## tz Australia/Melbourne ## date 2021-03-08 ## ## ─ Packages ────────────────────────────────────────── ## package * version date lib ## assertthat 0.2.1 2019-03-21 [1] ## backports 1.2.0 2020-11-02 [1] ## base64enc 0.1-3 2015-07-28 [1] ## blastula 0.3.2 2020-05-19 [1] ## broom 0.7.2 2020-10-20 [1] ## bslib 0.2.4 2021-01-25 [1] ## cachem 1.0.4 2021-02-13 [1] ## cellranger 1.1.0 2016-07-27 [1] ## checkmate 2.0.0 2020-02-06 [1] ## cli 2.3.1 2021-02-23 [1] ## colorspace 2.0-0 2020-11-11 [1] ## commonmark 1.7 2018-12-01 [1] ## crayon 1.4.1 2021-02-08 [1] ## crul 1.0.0 2020-07-30 [1] ## curl 4.3 2019-12-02 [1] ## DBI 1.1.0 2019-12-15 [1] ## dbplyr 2.0.0 2020-11-03 [1] ## digest 0.6.27 2020-10-24 [1] ## dplyr * 1.0.4 2021-02-02 [1] ## ellipsis 0.3.1 2020-05-15 [1] ## evaluate 0.14 2019-05-28 [1] ## fansi 0.4.2 2021-01-15 [1] ## fastmap 1.1.0 2021-01-25 [1] ## forcats * 0.5.0 2020-03-01 [1] ## fs 1.5.0 2020-07-31 [1] ## generics 0.1.0 2020-10-31 [1] ## ggplot2 * 3.3.2 2020-06-19 [1] ## gistr * 0.9.0 2020-07-29 [1] ## glue 1.4.2 2020-08-27 [1] ## gt 0.2.2 2020-08-05 [1] ## gtable 0.3.0 2019-03-25 [1] ## haven 2.3.1 2020-06-01 [1] ## here 1.0.1 2020-12-13 [1] ## hms 1.0.0 2021-01-13 [1] ## htmltools 0.5.1.1 2021-01-22 [1] ## httpcode 0.3.0 2020-04-10 [1] ## httpuv 1.5.5 2021-01-13 [1] ## httr 1.4.2 2020-07-20 [1] ## insight 0.9.6 2020-09-20 [1] ## jquerylib 0.1.3 2020-12-17 [1] ## jsonlite 1.7.2 2020-12-09 [1] ## knitr 1.30 2020-09-22 [1] ## later 1.1.0.1 2020-06-05 [1] ## lattice 0.20-41 2020-04-02 [1] ## lifecycle 1.0.0 2021-02-15 [1] ## lubridate 1.7.9.2 2020-11-13 [1] ## magrittr 2.0.1 2020-11-17 [1] ## Matrix 1.2-18 2019-11-27 [1] ## mime 0.10 2021-02-13 [1] ## miniUI 0.1.1.1 2018-05-18 [1] ## modelr 0.1.8 2020-05-19 [1] ## munsell 0.5.0 2018-06-12 [1] ## pillar 1.5.0 2021-02-22 [1] ## pkgconfig 2.0.3 2019-09-22 [1] ## pointblank * 0.6.0.9000 2021-03-06 [1] ## promises 1.2.0.1 2021-02-11 [1] ## purrr * 0.3.4 2020-04-17 [1] ## qualtRics 3.1.3 2020-05-22 [1] ## R6 2.5.0 2020-10-28 [1] ## Rcpp 1.0.6 2021-01-15 [1] ## readr * 1.4.0 2020-10-05 [1] ## readxl 1.3.1 2019-03-13 [1] ## reprex * 1.0.0 2021-01-27 [1] ## rlang 0.4.10 2020-12-30 [1] ## rmarkdown 2.5 2020-10-21 [1] ## rprojroot 2.0.2 2020-11-15 [1] ## rsconnect 0.8.16 2019-12-13 [1] ## rstudioapi 0.13 2020-11-12 [1] ## rvest 0.3.6 2020-07-25 [1] ## sass 0.3.1.9000 2021-02-26 [1] ## scales 1.1.1 2020-05-11 [1] ## sessioninfo 1.1.1 2018-11-05 [1] ## shiny * 1.6.0 2021-01-25 [1] ## sjlabelled 1.1.5 2020-05-25 [1] ## stringi 1.5.3 2020-09-09 [1] ## stringr * 1.4.0 2019-02-10 [1] ## styler 1.3.2 2020-02-23 [1] ## tibble * 3.1.0 2021-02-25 [1] ## tidyr * 1.1.2 2020-08-27 [1] ## tidyselect 1.1.0 2020-05-11 [1] ## tidyverse * 1.3.0 2019-11-21 [1] ## triebeard 0.3.0 2016-08-04 [1] ## urltools 1.7.3 2019-04-14 [1] ## utf8 1.1.4 2018-05-24 [1] ## vctrs 0.3.6 2020-12-17 [1] ## withr 2.4.1 2021-01-26 [1] ## xfun 0.19 2020-10-30 [1] ## xml2 1.3.2 2020-04-23 [1] ## xtable 1.8-4 2019-04-21 [1] ## yaml 2.2.1 2020-02-01 [1] ## source ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.3) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.1) ## CRAN (R 4.0.2) ## CRAN (R 4.0.1) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.3) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.3) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.3) ## CRAN (R 4.0.0) ## Github (rich-iannone/pointblank@286f824) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## Github (rstudio/sass@2526470) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.3) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.2) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## CRAN (R 4.0.0) ## ## [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment