README.md

RAstroCat

A tool for generating ReadMe files in accordance with Standards for Astronomical Catalogues, 2.0.

The package is built around a single R6 class (ReadMeGen), which is used to construct the appropriate description and format data to ascii plain-text strings.

Usage

library(rastrocat)
library(vctrs)
library(tibble, warn.conflicts = FALSE)
library(dplyr, warn.conflicts = FALSE)
library(purrr, warn.conflicts = FALSE)

# "Lorem ipsum" is used as a standard long-text filler and as a tool for 
# line wrapping correction tests.
lorem_ipsum <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

Now, start we creating generator (providing some of the mandatory fields):

gen <- ReadMeGen$new(
    "ID-123", # Short id
    "Test Project", # Short title
    vec_c("de FName Author_1 A.-K.", "Author_2 B.L.", "Author_3 C.M.",
        "Author_4 D.N.", "Author_5 E.O.", "Author_6 F.P.", "Author_7 G.Q.", 
        "Author_8 H.R.", "Author_9 I.S.", "Author_10 J.T."), # Authors list
    2020L) # Year of puclication

Add optional description, abstract and full title:

gen$Description <- lorem_ipsum
gen$Abstract <- lorem_ipsum
gen$FullTitle <- "A very long title of the table"

References in plain text & bibcodes:

# Supports tidy dots
gen$set_references(
    c("  Astron. Astrophys. Suppl. Ser., 119, 91-98 (1996)", "Astron. Astrophys. Suppl. Ser., 119, 91-98 (1996)"),
        "The Messenger 81, 20 (1995)")

gen$set_bibcode_references(c("1996A&AS..119...91T", "=1996A&AS..119...91T"), "=1995Msngr..81...20D")

Generate format table using mtcars dataset as source:

# `Format` and `Label` are required
frmt <- tibble(
            Format = vec_repeat("F5.1", ncol(mtcars)), 
            Label = names(mtcars), 
            Explanations = "?") %>%
        mutate(Explanations = if_else(row_number() == 10L, lorem_ipsum, Explanations))

Assign format table as well as two datasets with similar structure:

gen$assign_multiple_datasets(
    frmt,
    tibble(
        Data = list(mtcars, slice(mtcars, 1:10)),
        FileName = c("mtcars.dat", "mtcars_short.dat"),
        Description = c(lorem_ipsum, "None")))

Adding table notes and final remarks:

gen$TableNotes <- lorem_ipsum

# Remarks should be named and a split into paragraphs
gen$set_remarks("First" = vec_c(lorem_ipsum, lorem_ipsum), !!!list("Second" = lorem_ipsum))

The ReadMe file is generated by calling public $generate_readme() as a sequence of standard 80-character strings:

ReadMe

gen$generate_readme() %>% paste(collapse = "\n") %>% cat
## ID-123                                    Test Project (de FName Author_1+ 2020)
## ================================================================================
## A very long title of the table                                                  
##     de FName Author_1 A.-K., Author_2 B.L., Author_3 C.M., Author_4 D.N.,       
##     Author_5 E.O., Author_6 F.P., Author_7 G.Q., Author_8 H.R., Author_9 I.S.,  
##     Author_10 J.T.                                                              
##     <Astron. Astrophys. Suppl. Ser., 119, 91-98 (1996)>                         
##     <Astron. Astrophys. Suppl. Ser., 119, 91-98 (1996)>                         
##     <The Messenger 81, 20 (1995)>                                               
##     =1996A&AS..119...91T                                                        
##     =1996A&AS..119...91T                                                        
##     =1995Msngr..81...20D                                                        
## ================================================================================
##                                                                                 
## Abstract:                                                                       
##     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod     
##     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim        
##     veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea     
##     commodo consequat. Duis aute irure dolor in reprehenderit in voluptate      
##     velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat  
##     cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id   
##     est laborum.                                                                
##                                                                                 
## Description:                                                                    
##     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod     
##     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim        
##     veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea     
##     commodo consequat. Duis aute irure dolor in reprehenderit in voluptate      
##     velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat  
##     cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id   
##     est laborum.                                                                
##                                                                                 
## File Summary:                                                                   
## --------------------------------------------------------------------------------
##  FileName           Lrecl  Records  Explanations                                
## --------------------------------------------------------------------------------
## ReadMe                80         .  This file                                   
## mtcars.dat            77        32  Lorem ipsum dolor sit amet, consectetur     
##                                         adipiscing elit, sed do eiusmod tempor  
##                                         incididunt ut labore et dolore magna    
##                                         aliqua. Ut enim ad minim veniam, quis   
##                                         nostrud exercitation ullamco laboris    
##                                         nisi ut aliquip ex ea commodo consequat.
##                                         Duis aute irure dolor in reprehenderit  
##                                         in voluptate velit esse cillum dolore   
##                                         eu fugiat nulla pariatur. Excepteur     
##                                         sint occaecat cupidatat non proident,   
##                                         sunt in culpa qui officia deserunt      
##                                         mollit anim id est laborum.             
## mtcars_short.dat      77        10  None                                        
## --------------------------------------------------------------------------------
##                                                                                 
##                                                                                 
## Byte-by-byte Description of file: mtcars.dat mtcars_short.dat                   
## --------------------------------------------------------------------------------
##     Bytes  Format  Units  Label  Explanations                                   
## --------------------------------------------------------------------------------
##     3-  7  F5.1    ---    mpg    ?                                              
##    10- 14  F5.1    ---    cyl    ?                                              
##    17- 21  F5.1    ---    disp   ?                                              
##    24- 28  F5.1    ---    hp     ?                                              
##    31- 35  F5.1    ---    drat   ?                                              
##    38- 42  F5.1    ---    wt     ?                                              
##    45- 49  F5.1    ---    qsec   ?                                              
##    52- 56  F5.1    ---    vs     ?                                              
##    59- 63  F5.1    ---    am     ?                                              
##    66- 70  F5.1    ---    gear   Lorem ipsum dolor sit amet, consectetur        
##                                      adipiscing elit, sed do eiusmod tempor     
##                                      incididunt ut labore et dolore magna       
##                                      aliqua. Ut enim ad minim veniam, quis      
##                                      nostrud exercitation ullamco laboris nisi  
##                                      ut aliquip ex ea commodo consequat. Duis   
##                                      aute irure dolor in reprehenderit in       
##                                      voluptate velit esse cillum dolore eu      
##                                      fugiat nulla pariatur. Excepteur sint      
##                                      occaecat cupidatat non proident, sunt in   
##                                      culpa qui officia deserunt mollit anim id  
##                                      est laborum.                               
##    73- 77  F5.1    ---    carb   ?                                              
## --------------------------------------------------------------------------------
##                                                                                 
## Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor  
##     incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis  
##     nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo          
##     consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse   
##     cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat   
##     non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
##                                                                                 
## --------------------------------------------------------------------------------
##                                                                                 
## First:                                                                          
##     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod     
##     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim        
##     veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea     
##     commodo consequat. Duis aute irure dolor in reprehenderit in voluptate      
##     velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat  
##     cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id   
##     est laborum.                                                                
##     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod     
##     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim        
##     veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea     
##     commodo consequat. Duis aute irure dolor in reprehenderit in voluptate      
##     velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat  
##     cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id   
##     est laborum.                                                                
##                                                                                 
## Second:                                                                         
##     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod     
##     tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim        
##     veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea     
##     commodo consequat. Duis aute irure dolor in reprehenderit in voluptate      
##     velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat  
##     cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id   
##     est laborum.                                                                
##                                                                                 
## ================================================================================
## (End)                     de FName Author_1 A.-K.                     2020-02-20

And data is transformed to the appropriate format using $generate_data():

Data

gen$generate_data() %>% 
    map(paste, collapse = "\n") %>%
    iwalk(~{cat(.y); cat("\n"); cat(.x); cat("\n")})   
## mtcars.dat
##    21.0    6.0  160.0  110.0    3.9    2.6   16.5    0.0    1.0    4.0    4.0
##    21.0    6.0  160.0  110.0    3.9    2.9   17.0    0.0    1.0    4.0    4.0
##    22.8    4.0  108.0   93.0    3.8    2.3   18.6    1.0    1.0    4.0    1.0
##    21.4    6.0  258.0  110.0    3.1    3.2   19.4    1.0    0.0    3.0    1.0
##    18.7    8.0  360.0  175.0    3.1    3.4   17.0    0.0    0.0    3.0    2.0
##    18.1    6.0  225.0  105.0    2.8    3.5   20.2    1.0    0.0    3.0    1.0
##    14.3    8.0  360.0  245.0    3.2    3.6   15.8    0.0    0.0    3.0    4.0
##    24.4    4.0  146.7   62.0    3.7    3.2   20.0    1.0    0.0    4.0    2.0
##    22.8    4.0  140.8   95.0    3.9    3.1   22.9    1.0    0.0    4.0    2.0
##    19.2    6.0  167.6  123.0    3.9    3.4   18.3    1.0    0.0    4.0    4.0
##    17.8    6.0  167.6  123.0    3.9    3.4   18.9    1.0    0.0    4.0    4.0
##    16.4    8.0  275.8  180.0    3.1    4.1   17.4    0.0    0.0    3.0    3.0
##    17.3    8.0  275.8  180.0    3.1    3.7   17.6    0.0    0.0    3.0    3.0
##    15.2    8.0  275.8  180.0    3.1    3.8   18.0    0.0    0.0    3.0    3.0
##    10.4    8.0  472.0  205.0    2.9    5.2   18.0    0.0    0.0    3.0    4.0
##    10.4    8.0  460.0  215.0    3.0    5.4   17.8    0.0    0.0    3.0    4.0
##    14.7    8.0  440.0  230.0    3.2    5.3   17.4    0.0    0.0    3.0    4.0
##    32.4    4.0   78.7   66.0    4.1    2.2   19.5    1.0    1.0    4.0    1.0
##    30.4    4.0   75.7   52.0    4.9    1.6   18.5    1.0    1.0    4.0    2.0
##    33.9    4.0   71.1   65.0    4.2    1.8   19.9    1.0    1.0    4.0    1.0
##    21.5    4.0  120.1   97.0    3.7    2.5   20.0    1.0    0.0    3.0    1.0
##    15.5    8.0  318.0  150.0    2.8    3.5   16.9    0.0    0.0    3.0    2.0
##    15.2    8.0  304.0  150.0    3.1    3.4   17.3    0.0    0.0    3.0    2.0
##    13.3    8.0  350.0  245.0    3.7    3.8   15.4    0.0    0.0    3.0    4.0
##    19.2    8.0  400.0  175.0    3.1    3.8   17.1    0.0    0.0    3.0    2.0
##    27.3    4.0   79.0   66.0    4.1    1.9   18.9    1.0    1.0    4.0    1.0
##    26.0    4.0  120.3   91.0    4.4    2.1   16.7    0.0    1.0    5.0    2.0
##    30.4    4.0   95.1  113.0    3.8    1.5   16.9    1.0    1.0    5.0    2.0
##    15.8    8.0  351.0  264.0    4.2    3.2   14.5    0.0    1.0    5.0    4.0
##    19.7    6.0  145.0  175.0    3.6    2.8   15.5    0.0    1.0    5.0    6.0
##    15.0    8.0  301.0  335.0    3.5    3.6   14.6    0.0    1.0    5.0    8.0
##    21.4    4.0  121.0  109.0    4.1    2.8   18.6    1.0    1.0    4.0    2.0
## mtcars_short.dat
##    21.0    6.0  160.0  110.0    3.9    2.6   16.5    0.0    1.0    4.0    4.0
##    21.0    6.0  160.0  110.0    3.9    2.9   17.0    0.0    1.0    4.0    4.0
##    22.8    4.0  108.0   93.0    3.8    2.3   18.6    1.0    1.0    4.0    1.0
##    21.4    6.0  258.0  110.0    3.1    3.2   19.4    1.0    0.0    3.0    1.0
##    18.7    8.0  360.0  175.0    3.1    3.4   17.0    0.0    0.0    3.0    2.0
##    18.1    6.0  225.0  105.0    2.8    3.5   20.2    1.0    0.0    3.0    1.0
##    14.3    8.0  360.0  245.0    3.2    3.6   15.8    0.0    0.0    3.0    4.0
##    24.4    4.0  146.7   62.0    3.7    3.2   20.0    1.0    0.0    4.0    2.0
##    22.8    4.0  140.8   95.0    3.9    3.1   22.9    1.0    0.0    4.0    2.0
##    19.2    6.0  167.6  123.0    3.9    3.4   18.3    1.0    0.0    4.0    4.0



Ilia-Kosenkov/rastrocat documentation built on May 21, 2020, 4:12 a.m.