mirror of
https://github.com/agdamsbo/REDCapCAST.git
synced 2024-11-21 21:10:22 +01:00
page, test and coverage
This commit is contained in:
parent
9f68e27f5a
commit
4f7af115f4
@ -3,3 +3,7 @@
|
|||||||
^data-raw$
|
^data-raw$
|
||||||
^test-data$
|
^test-data$
|
||||||
^troubleshooting\.R$
|
^troubleshooting\.R$
|
||||||
|
^setup\.R$
|
||||||
|
^docs$
|
||||||
|
^\.github$
|
||||||
|
^codecov\.yml$
|
||||||
|
1
.github/.gitignore
vendored
Normal file
1
.github/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.html
|
49
.github/workflows/R-CMD-check.yaml
vendored
Normal file
49
.github/workflows/R-CMD-check.yaml
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
|
||||||
|
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main, master]
|
||||||
|
pull_request:
|
||||||
|
branches: [main, master]
|
||||||
|
|
||||||
|
name: R-CMD-check
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
R-CMD-check:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
|
||||||
|
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- {os: macos-latest, r: 'release'}
|
||||||
|
- {os: windows-latest, r: 'release'}
|
||||||
|
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
|
||||||
|
- {os: ubuntu-latest, r: 'release'}
|
||||||
|
- {os: ubuntu-latest, r: 'oldrel-1'}
|
||||||
|
|
||||||
|
env:
|
||||||
|
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
R_KEEP_PKG_SOURCE: yes
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- uses: r-lib/actions/setup-pandoc@v2
|
||||||
|
|
||||||
|
- uses: r-lib/actions/setup-r@v2
|
||||||
|
with:
|
||||||
|
r-version: ${{ matrix.config.r }}
|
||||||
|
http-user-agent: ${{ matrix.config.http-user-agent }}
|
||||||
|
use-public-rspm: true
|
||||||
|
|
||||||
|
- uses: r-lib/actions/setup-r-dependencies@v2
|
||||||
|
with:
|
||||||
|
extra-packages: any::rcmdcheck
|
||||||
|
needs: check
|
||||||
|
|
||||||
|
- uses: r-lib/actions/check-r-package@v2
|
||||||
|
with:
|
||||||
|
upload-snapshots: true
|
50
.github/workflows/test-coverage.yaml
vendored
Normal file
50
.github/workflows/test-coverage.yaml
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
|
||||||
|
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main, master]
|
||||||
|
pull_request:
|
||||||
|
branches: [main, master]
|
||||||
|
|
||||||
|
name: test-coverage
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test-coverage:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- uses: r-lib/actions/setup-r@v2
|
||||||
|
with:
|
||||||
|
use-public-rspm: true
|
||||||
|
|
||||||
|
- uses: r-lib/actions/setup-r-dependencies@v2
|
||||||
|
with:
|
||||||
|
extra-packages: any::covr
|
||||||
|
needs: coverage
|
||||||
|
|
||||||
|
- name: Test coverage
|
||||||
|
run: |
|
||||||
|
covr::codecov(
|
||||||
|
quiet = FALSE,
|
||||||
|
clean = FALSE,
|
||||||
|
install_path = file.path(Sys.getenv("RUNNER_TEMP"), "package")
|
||||||
|
)
|
||||||
|
shell: Rscript {0}
|
||||||
|
|
||||||
|
- name: Show testthat output
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
## --------------------------------------------------------------------
|
||||||
|
find ${{ runner.temp }}/package -name 'testthat.Rout*' -exec cat '{}' \; || true
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Upload test results
|
||||||
|
if: failure()
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: coverage-test-failures
|
||||||
|
path: ${{ runner.temp }}/package
|
11
DESCRIPTION
11
DESCRIPTION
@ -1,6 +1,6 @@
|
|||||||
Package: REDCapCAST
|
Package: REDCapCAST
|
||||||
Title: REDCap Castellated data handling
|
Title: REDCap Castellated data handling
|
||||||
Version: 23.3.1
|
Version: 23.3.2
|
||||||
Authors@R: c(
|
Authors@R: c(
|
||||||
person("Paul", "Egeler", email = "paul.egeler@spectrumhealth.org", role = c("aut")),
|
person("Paul", "Egeler", email = "paul.egeler@spectrumhealth.org", role = c("aut")),
|
||||||
person("Andreas Gammelgaard", "Damsbo", email = "agdamsbo@clin.au.dk", role = c("cre", "ctb","cph"),
|
person("Andreas Gammelgaard", "Damsbo", email = "agdamsbo@clin.au.dk", role = c("cre", "ctb","cph"),
|
||||||
@ -19,13 +19,15 @@ Description: This package is based on REDCapRITS by Paul Egeler and Spectrum Hea
|
|||||||
4) procedures for data integration and interoperability with external sources
|
4) procedures for data integration and interoperability with external sources
|
||||||
(<doi:10.1016/j.jbi.2008.08.010>; <doi:10.1016/j.jbi.2019.103208>).
|
(<doi:10.1016/j.jbi.2008.08.010>; <doi:10.1016/j.jbi.2019.103208>).
|
||||||
Depends: R (>= 3.4.0)
|
Depends: R (>= 3.4.0)
|
||||||
Suggests:
|
Suggests:
|
||||||
RCurl,
|
spelling,
|
||||||
|
RCurl,
|
||||||
httr,
|
httr,
|
||||||
jsonlite,
|
jsonlite,
|
||||||
testthat,
|
testthat,
|
||||||
Hmisc,
|
Hmisc,
|
||||||
readr
|
readr,
|
||||||
|
covr
|
||||||
License: GPL-3
|
License: GPL-3
|
||||||
Encoding: UTF-8
|
Encoding: UTF-8
|
||||||
LazyData: true
|
LazyData: true
|
||||||
@ -43,3 +45,4 @@ Collate:
|
|||||||
'REDCap_split.r'
|
'REDCap_split.r'
|
||||||
'read_redcap_tables.R'
|
'read_redcap_tables.R'
|
||||||
'redcap_wider.R'
|
'redcap_wider.R'
|
||||||
|
Language: en-US
|
||||||
|
6
NEWS.md
6
NEWS.md
@ -1,3 +1,9 @@
|
|||||||
|
# REDCapCAST 23.3.2
|
||||||
|
|
||||||
|
### Documentation:
|
||||||
|
|
||||||
|
* Page added. Vignettes to follow.
|
||||||
|
|
||||||
# REDCapCAST 23.3.1
|
# REDCapCAST 23.3.1
|
||||||
|
|
||||||
### New name: REDCapCAST
|
### New name: REDCapCAST
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
#' @param vars_in_data Vector of variable names in the dataset
|
#' @param vars_in_data Vector of variable names in the dataset
|
||||||
#' @return A dataframe containing metadata for the variables in the dataset
|
#' @return A dataframe containing metadata for the variables in the dataset
|
||||||
#' @export
|
#' @export
|
||||||
#' @examples
|
|
||||||
#'
|
#'
|
||||||
focused_metadata <- function(metadata, vars_in_data) {
|
focused_metadata <- function(metadata, vars_in_data) {
|
||||||
|
|
||||||
@ -99,7 +98,6 @@ focused_metadata <- function(metadata, vars_in_data) {
|
|||||||
#'
|
#'
|
||||||
#' @export
|
#' @export
|
||||||
#'
|
#'
|
||||||
#' @examples
|
|
||||||
#'
|
#'
|
||||||
sanitize_split <- function(l,
|
sanitize_split <- function(l,
|
||||||
generic.names = c(
|
generic.names = c(
|
||||||
@ -128,8 +126,6 @@ sanitize_split <- function(l,
|
|||||||
#'
|
#'
|
||||||
#' @export
|
#' @export
|
||||||
#'
|
#'
|
||||||
#' @examples
|
|
||||||
#'
|
|
||||||
#'
|
#'
|
||||||
match_fields_to_form <- function(metadata, vars_in_data) {
|
match_fields_to_form <- function(metadata, vars_in_data) {
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
<!-- badges: start -->
|
||||||
|
[![R-CMD-check](https://github.com/agdamsbo/REDCapCAST/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/agdamsbo/REDCapCAST/actions/workflows/R-CMD-check.yaml)
|
||||||
|
[![Codecov test coverage](https://codecov.io/gh/agdamsbo/REDCapCAST/branch/master/graph/badge.svg)](https://app.codecov.io/gh/agdamsbo/REDCapCAST?branch=master)
|
||||||
|
<!-- badges: end -->
|
||||||
|
|
||||||
# REDCapCAST
|
# REDCapCAST
|
||||||
REDCap Castellated data handling when using repeated instruments.
|
REDCap Castellated data handling when using repeated instruments.
|
||||||
|
|
||||||
|
14
codecov.yml
Normal file
14
codecov.yml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
comment: false
|
||||||
|
|
||||||
|
coverage:
|
||||||
|
status:
|
||||||
|
project:
|
||||||
|
default:
|
||||||
|
target: auto
|
||||||
|
threshold: 1%
|
||||||
|
informational: true
|
||||||
|
patch:
|
||||||
|
default:
|
||||||
|
target: auto
|
||||||
|
threshold: 1%
|
||||||
|
informational: true
|
60
docs/bootstrap-toc.css
vendored
Normal file
60
docs/bootstrap-toc.css
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/)
|
||||||
|
* Copyright 2015 Aidan Feldman
|
||||||
|
* Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */
|
||||||
|
|
||||||
|
/* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */
|
||||||
|
|
||||||
|
/* All levels of nav */
|
||||||
|
nav[data-toggle='toc'] .nav > li > a {
|
||||||
|
display: block;
|
||||||
|
padding: 4px 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #767676;
|
||||||
|
}
|
||||||
|
nav[data-toggle='toc'] .nav > li > a:hover,
|
||||||
|
nav[data-toggle='toc'] .nav > li > a:focus {
|
||||||
|
padding-left: 19px;
|
||||||
|
color: #563d7c;
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: transparent;
|
||||||
|
border-left: 1px solid #563d7c;
|
||||||
|
}
|
||||||
|
nav[data-toggle='toc'] .nav > .active > a,
|
||||||
|
nav[data-toggle='toc'] .nav > .active:hover > a,
|
||||||
|
nav[data-toggle='toc'] .nav > .active:focus > a {
|
||||||
|
padding-left: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #563d7c;
|
||||||
|
background-color: transparent;
|
||||||
|
border-left: 2px solid #563d7c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Nav: second level (shown on .active) */
|
||||||
|
nav[data-toggle='toc'] .nav .nav {
|
||||||
|
display: none; /* Hide by default, but at >768px, show it */
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
nav[data-toggle='toc'] .nav .nav > li > a {
|
||||||
|
padding-top: 1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
padding-left: 30px;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
nav[data-toggle='toc'] .nav .nav > li > a:hover,
|
||||||
|
nav[data-toggle='toc'] .nav .nav > li > a:focus {
|
||||||
|
padding-left: 29px;
|
||||||
|
}
|
||||||
|
nav[data-toggle='toc'] .nav .nav > .active > a,
|
||||||
|
nav[data-toggle='toc'] .nav .nav > .active:hover > a,
|
||||||
|
nav[data-toggle='toc'] .nav .nav > .active:focus > a {
|
||||||
|
padding-left: 28px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */
|
||||||
|
nav[data-toggle='toc'] .nav > .active > ul {
|
||||||
|
display: block;
|
||||||
|
}
|
159
docs/bootstrap-toc.js
vendored
Normal file
159
docs/bootstrap-toc.js
vendored
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/)
|
||||||
|
* Copyright 2015 Aidan Feldman
|
||||||
|
* Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */
|
||||||
|
(function() {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
window.Toc = {
|
||||||
|
helpers: {
|
||||||
|
// return all matching elements in the set, or their descendants
|
||||||
|
findOrFilter: function($el, selector) {
|
||||||
|
// http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/
|
||||||
|
// http://stackoverflow.com/a/12731439/358804
|
||||||
|
var $descendants = $el.find(selector);
|
||||||
|
return $el.filter(selector).add($descendants).filter(':not([data-toc-skip])');
|
||||||
|
},
|
||||||
|
|
||||||
|
generateUniqueIdBase: function(el) {
|
||||||
|
var text = $(el).text();
|
||||||
|
var anchor = text.trim().toLowerCase().replace(/[^A-Za-z0-9]+/g, '-');
|
||||||
|
return anchor || el.tagName.toLowerCase();
|
||||||
|
},
|
||||||
|
|
||||||
|
generateUniqueId: function(el) {
|
||||||
|
var anchorBase = this.generateUniqueIdBase(el);
|
||||||
|
for (var i = 0; ; i++) {
|
||||||
|
var anchor = anchorBase;
|
||||||
|
if (i > 0) {
|
||||||
|
// add suffix
|
||||||
|
anchor += '-' + i;
|
||||||
|
}
|
||||||
|
// check if ID already exists
|
||||||
|
if (!document.getElementById(anchor)) {
|
||||||
|
return anchor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
generateAnchor: function(el) {
|
||||||
|
if (el.id) {
|
||||||
|
return el.id;
|
||||||
|
} else {
|
||||||
|
var anchor = this.generateUniqueId(el);
|
||||||
|
el.id = anchor;
|
||||||
|
return anchor;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
createNavList: function() {
|
||||||
|
return $('<ul class="nav"></ul>');
|
||||||
|
},
|
||||||
|
|
||||||
|
createChildNavList: function($parent) {
|
||||||
|
var $childList = this.createNavList();
|
||||||
|
$parent.append($childList);
|
||||||
|
return $childList;
|
||||||
|
},
|
||||||
|
|
||||||
|
generateNavEl: function(anchor, text) {
|
||||||
|
var $a = $('<a></a>');
|
||||||
|
$a.attr('href', '#' + anchor);
|
||||||
|
$a.text(text);
|
||||||
|
var $li = $('<li></li>');
|
||||||
|
$li.append($a);
|
||||||
|
return $li;
|
||||||
|
},
|
||||||
|
|
||||||
|
generateNavItem: function(headingEl) {
|
||||||
|
var anchor = this.generateAnchor(headingEl);
|
||||||
|
var $heading = $(headingEl);
|
||||||
|
var text = $heading.data('toc-text') || $heading.text();
|
||||||
|
return this.generateNavEl(anchor, text);
|
||||||
|
},
|
||||||
|
|
||||||
|
// Find the first heading level (`<h1>`, then `<h2>`, etc.) that has more than one element. Defaults to 1 (for `<h1>`).
|
||||||
|
getTopLevel: function($scope) {
|
||||||
|
for (var i = 1; i <= 6; i++) {
|
||||||
|
var $headings = this.findOrFilter($scope, 'h' + i);
|
||||||
|
if ($headings.length > 1) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
},
|
||||||
|
|
||||||
|
// returns the elements for the top level, and the next below it
|
||||||
|
getHeadings: function($scope, topLevel) {
|
||||||
|
var topSelector = 'h' + topLevel;
|
||||||
|
|
||||||
|
var secondaryLevel = topLevel + 1;
|
||||||
|
var secondarySelector = 'h' + secondaryLevel;
|
||||||
|
|
||||||
|
return this.findOrFilter($scope, topSelector + ',' + secondarySelector);
|
||||||
|
},
|
||||||
|
|
||||||
|
getNavLevel: function(el) {
|
||||||
|
return parseInt(el.tagName.charAt(1), 10);
|
||||||
|
},
|
||||||
|
|
||||||
|
populateNav: function($topContext, topLevel, $headings) {
|
||||||
|
var $context = $topContext;
|
||||||
|
var $prevNav;
|
||||||
|
|
||||||
|
var helpers = this;
|
||||||
|
$headings.each(function(i, el) {
|
||||||
|
var $newNav = helpers.generateNavItem(el);
|
||||||
|
var navLevel = helpers.getNavLevel(el);
|
||||||
|
|
||||||
|
// determine the proper $context
|
||||||
|
if (navLevel === topLevel) {
|
||||||
|
// use top level
|
||||||
|
$context = $topContext;
|
||||||
|
} else if ($prevNav && $context === $topContext) {
|
||||||
|
// create a new level of the tree and switch to it
|
||||||
|
$context = helpers.createChildNavList($prevNav);
|
||||||
|
} // else use the current $context
|
||||||
|
|
||||||
|
$context.append($newNav);
|
||||||
|
|
||||||
|
$prevNav = $newNav;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
parseOps: function(arg) {
|
||||||
|
var opts;
|
||||||
|
if (arg.jquery) {
|
||||||
|
opts = {
|
||||||
|
$nav: arg
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
opts = arg;
|
||||||
|
}
|
||||||
|
opts.$scope = opts.$scope || $(document.body);
|
||||||
|
return opts;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// accepts a jQuery object, or an options object
|
||||||
|
init: function(opts) {
|
||||||
|
opts = this.helpers.parseOps(opts);
|
||||||
|
|
||||||
|
// ensure that the data attribute is in place for styling
|
||||||
|
opts.$nav.attr('data-toggle', 'toc');
|
||||||
|
|
||||||
|
var $topContext = this.helpers.createChildNavList(opts.$nav);
|
||||||
|
var topLevel = this.helpers.getTopLevel(opts.$scope);
|
||||||
|
var $headings = this.helpers.getHeadings(opts.$scope, topLevel);
|
||||||
|
this.helpers.populateNav($topContext, topLevel, $headings);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
$('nav[data-toggle="toc"]').each(function(i, el) {
|
||||||
|
var $nav = $(el);
|
||||||
|
Toc.init($nav);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
148
docs/docsearch.css
Normal file
148
docs/docsearch.css
Normal file
File diff suppressed because one or more lines are too long
85
docs/docsearch.js
Normal file
85
docs/docsearch.js
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
$(function() {
|
||||||
|
|
||||||
|
// register a handler to move the focus to the search bar
|
||||||
|
// upon pressing shift + "/" (i.e. "?")
|
||||||
|
$(document).on('keydown', function(e) {
|
||||||
|
if (e.shiftKey && e.keyCode == 191) {
|
||||||
|
e.preventDefault();
|
||||||
|
$("#search-input").focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
// do keyword highlighting
|
||||||
|
/* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */
|
||||||
|
var mark = function() {
|
||||||
|
|
||||||
|
var referrer = document.URL ;
|
||||||
|
var paramKey = "q" ;
|
||||||
|
|
||||||
|
if (referrer.indexOf("?") !== -1) {
|
||||||
|
var qs = referrer.substr(referrer.indexOf('?') + 1);
|
||||||
|
var qs_noanchor = qs.split('#')[0];
|
||||||
|
var qsa = qs_noanchor.split('&');
|
||||||
|
var keyword = "";
|
||||||
|
|
||||||
|
for (var i = 0; i < qsa.length; i++) {
|
||||||
|
var currentParam = qsa[i].split('=');
|
||||||
|
|
||||||
|
if (currentParam.length !== 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentParam[0] == paramKey) {
|
||||||
|
keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keyword !== "") {
|
||||||
|
$(".contents").unmark({
|
||||||
|
done: function() {
|
||||||
|
$(".contents").mark(keyword);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mark();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Search term highlighting ------------------------------*/
|
||||||
|
|
||||||
|
function matchedWords(hit) {
|
||||||
|
var words = [];
|
||||||
|
|
||||||
|
var hierarchy = hit._highlightResult.hierarchy;
|
||||||
|
// loop to fetch from lvl0, lvl1, etc.
|
||||||
|
for (var idx in hierarchy) {
|
||||||
|
words = words.concat(hierarchy[idx].matchedWords);
|
||||||
|
}
|
||||||
|
|
||||||
|
var content = hit._highlightResult.content;
|
||||||
|
if (content) {
|
||||||
|
words = words.concat(content.matchedWords);
|
||||||
|
}
|
||||||
|
|
||||||
|
// return unique words
|
||||||
|
var words_uniq = [...new Set(words)];
|
||||||
|
return words_uniq;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateHitURL(hit) {
|
||||||
|
|
||||||
|
var words = matchedWords(hit);
|
||||||
|
var url = "";
|
||||||
|
|
||||||
|
if (hit.anchor) {
|
||||||
|
url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor;
|
||||||
|
} else {
|
||||||
|
url = hit.url + '?q=' + escape(words.join(" "));
|
||||||
|
}
|
||||||
|
|
||||||
|
return url;
|
||||||
|
}
|
12
docs/link.svg
Normal file
12
docs/link.svg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#75AADB;}
|
||||||
|
</style>
|
||||||
|
<path class="st0" d="M4,11.3h1.3v1.3H4c-2,0-4-2.3-4-4.7s2.1-4.7,4-4.7h5.3c1.9,0,4,2.3,4,4.7c0,1.9-1.2,3.6-2.7,4.3v-1.5
|
||||||
|
C11.4,10.2,12,9.1,12,8c0-1.7-1.4-3.3-2.7-3.3H4C2.7,4.7,1.3,6.3,1.3,8S2.7,11.3,4,11.3z M16,7.3h-1.3v1.3H16c1.3,0,2.7,1.6,2.7,3.3
|
||||||
|
s-1.4,3.3-2.7,3.3h-5.3C9.4,15.3,8,13.7,8,12c0-1.1,0.6-2.2,1.3-2.8V7.7C7.9,8.4,6.7,10.1,6.7,12c0,2.4,2.1,4.7,4,4.7H16
|
||||||
|
c1.9,0,4-2.3,4-4.7S18,7.3,16,7.3z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 810 B |
384
docs/pkgdown.css
Normal file
384
docs/pkgdown.css
Normal file
@ -0,0 +1,384 @@
|
|||||||
|
/* Sticky footer */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic idea: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/
|
||||||
|
* Details: https://github.com/philipwalton/solved-by-flexbox/blob/master/assets/css/components/site.css
|
||||||
|
*
|
||||||
|
* .Site -> body > .container
|
||||||
|
* .Site-content -> body > .container .row
|
||||||
|
* .footer -> footer
|
||||||
|
*
|
||||||
|
* Key idea seems to be to ensure that .container and __all its parents__
|
||||||
|
* have height set to 100%
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
body > .container {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
body > .container .row {
|
||||||
|
flex: 1 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
margin-top: 45px;
|
||||||
|
padding: 35px 0 36px;
|
||||||
|
border-top: 1px solid #e5e5e5;
|
||||||
|
color: #666;
|
||||||
|
display: flex;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
footer p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
footer div {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
footer .pkgdown {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
footer p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.icon {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure in-page images don't run outside their container */
|
||||||
|
.contents img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fix bug in bootstrap (only seen in firefox) */
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typographic tweaking ---------------------------------*/
|
||||||
|
|
||||||
|
.contents .page-header {
|
||||||
|
margin-top: calc(-60px + 1em);
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin-left: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Section anchors ---------------------------------*/
|
||||||
|
|
||||||
|
a.anchor {
|
||||||
|
display: none;
|
||||||
|
margin-left: 5px;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
|
||||||
|
background-image: url(./link.svg);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 20px 20px;
|
||||||
|
background-position: center center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:hover .anchor,
|
||||||
|
h2:hover .anchor,
|
||||||
|
h3:hover .anchor,
|
||||||
|
h4:hover .anchor,
|
||||||
|
h5:hover .anchor,
|
||||||
|
h6:hover .anchor {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fixes for fixed navbar --------------------------*/
|
||||||
|
|
||||||
|
.contents h1, .contents h2, .contents h3, .contents h4 {
|
||||||
|
padding-top: 60px;
|
||||||
|
margin-top: -40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Navbar submenu --------------------------*/
|
||||||
|
|
||||||
|
.dropdown-submenu {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu>.dropdown-menu {
|
||||||
|
top: 0;
|
||||||
|
left: 100%;
|
||||||
|
margin-top: -6px;
|
||||||
|
margin-left: -1px;
|
||||||
|
border-radius: 0 6px 6px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu:hover>.dropdown-menu {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu>a:after {
|
||||||
|
display: block;
|
||||||
|
content: " ";
|
||||||
|
float: right;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-color: transparent;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 5px 0 5px 5px;
|
||||||
|
border-left-color: #cccccc;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-right: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu:hover>a:after {
|
||||||
|
border-left-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left>.dropdown-menu {
|
||||||
|
left: -100%;
|
||||||
|
margin-left: 10px;
|
||||||
|
border-radius: 6px 0 6px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sidebar --------------------------*/
|
||||||
|
|
||||||
|
#pkgdown-sidebar {
|
||||||
|
margin-top: 30px;
|
||||||
|
position: -webkit-sticky;
|
||||||
|
position: sticky;
|
||||||
|
top: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pkgdown-sidebar h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pkgdown-sidebar h2:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pkgdown-sidebar .list-unstyled li {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* bootstrap-toc tweaks ------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* All levels of nav */
|
||||||
|
|
||||||
|
nav[data-toggle='toc'] .nav > li > a {
|
||||||
|
padding: 4px 20px 4px 6px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav[data-toggle='toc'] .nav > li > a:hover,
|
||||||
|
nav[data-toggle='toc'] .nav > li > a:focus {
|
||||||
|
padding-left: 5px;
|
||||||
|
color: inherit;
|
||||||
|
border-left: 1px solid #878787;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav[data-toggle='toc'] .nav > .active > a,
|
||||||
|
nav[data-toggle='toc'] .nav > .active:hover > a,
|
||||||
|
nav[data-toggle='toc'] .nav > .active:focus > a {
|
||||||
|
padding-left: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: inherit;
|
||||||
|
border-left: 2px solid #878787;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Nav: second level (shown on .active) */
|
||||||
|
|
||||||
|
nav[data-toggle='toc'] .nav .nav {
|
||||||
|
display: none; /* Hide by default, but at >768px, show it */
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav[data-toggle='toc'] .nav .nav > li > a {
|
||||||
|
padding-left: 16px;
|
||||||
|
font-size: 1.35rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav[data-toggle='toc'] .nav .nav > li > a:hover,
|
||||||
|
nav[data-toggle='toc'] .nav .nav > li > a:focus {
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav[data-toggle='toc'] .nav .nav > .active > a,
|
||||||
|
nav[data-toggle='toc'] .nav .nav > .active:hover > a,
|
||||||
|
nav[data-toggle='toc'] .nav .nav > .active:focus > a {
|
||||||
|
padding-left: 15px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 1.35rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* orcid ------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
.orcid {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #A6CE39;
|
||||||
|
/* margins are required by official ORCID trademark and display guidelines */
|
||||||
|
margin-left:4px;
|
||||||
|
margin-right:4px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reference index & topics ----------------------------------------------- */
|
||||||
|
|
||||||
|
.ref-index th {font-weight: normal;}
|
||||||
|
|
||||||
|
.ref-index td {vertical-align: top; min-width: 100px}
|
||||||
|
.ref-index .icon {width: 40px;}
|
||||||
|
.ref-index .alias {width: 40%;}
|
||||||
|
.ref-index-icons .alias {width: calc(40% - 40px);}
|
||||||
|
.ref-index .title {width: 60%;}
|
||||||
|
|
||||||
|
.ref-arguments th {text-align: right; padding-right: 10px;}
|
||||||
|
.ref-arguments th, .ref-arguments td {vertical-align: top; min-width: 100px}
|
||||||
|
.ref-arguments .name {width: 20%;}
|
||||||
|
.ref-arguments .desc {width: 80%;}
|
||||||
|
|
||||||
|
/* Nice scrolling for wide elements --------------------------------------- */
|
||||||
|
|
||||||
|
table {
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Syntax highlighting ---------------------------------------------------- */
|
||||||
|
|
||||||
|
pre, code, pre code {
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
pre, pre code {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-all;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
border: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .img, pre .r-plt {
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .img img, pre .r-plt img {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
code a, pre a {
|
||||||
|
color: #375f84;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.sourceLine:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fl {color: #1514b5;}
|
||||||
|
.fu {color: #000000;} /* function */
|
||||||
|
.ch,.st {color: #036a07;} /* string */
|
||||||
|
.kw {color: #264D66;} /* keyword */
|
||||||
|
.co {color: #888888;} /* comment */
|
||||||
|
|
||||||
|
.error {font-weight: bolder;}
|
||||||
|
.warning {font-weight: bolder;}
|
||||||
|
|
||||||
|
/* Clipboard --------------------------*/
|
||||||
|
|
||||||
|
.hasCopyButton {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-copy-ex {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hasCopyButton:hover button.btn-copy-ex {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* headroom.js ------------------------ */
|
||||||
|
|
||||||
|
.headroom {
|
||||||
|
will-change: transform;
|
||||||
|
transition: transform 200ms linear;
|
||||||
|
}
|
||||||
|
.headroom--pinned {
|
||||||
|
transform: translateY(0%);
|
||||||
|
}
|
||||||
|
.headroom--unpinned {
|
||||||
|
transform: translateY(-100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* mark.js ----------------------------*/
|
||||||
|
|
||||||
|
mark {
|
||||||
|
background-color: rgba(255, 255, 51, 0.5);
|
||||||
|
border-bottom: 2px solid rgba(255, 153, 51, 0.3);
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vertical spacing after htmlwidgets */
|
||||||
|
.html-widget {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* fontawesome ------------------------ */
|
||||||
|
|
||||||
|
.fab {
|
||||||
|
font-family: "Font Awesome 5 Brands" !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* don't display links in code chunks when printing */
|
||||||
|
/* source: https://stackoverflow.com/a/10781533 */
|
||||||
|
@media print {
|
||||||
|
code a:link:after, code a:visited:after {
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Section anchors ---------------------------------
|
||||||
|
Added in pandoc 2.11: https://github.com/jgm/pandoc-templates/commit/9904bf71
|
||||||
|
*/
|
||||||
|
|
||||||
|
div.csl-bib-body { }
|
||||||
|
div.csl-entry {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.hanging-indent div.csl-entry {
|
||||||
|
margin-left:2em;
|
||||||
|
text-indent:-2em;
|
||||||
|
}
|
||||||
|
div.csl-left-margin {
|
||||||
|
min-width:2em;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
div.csl-right-inline {
|
||||||
|
margin-left:2em;
|
||||||
|
padding-left:1em;
|
||||||
|
}
|
||||||
|
div.csl-indent {
|
||||||
|
margin-left: 2em;
|
||||||
|
}
|
108
docs/pkgdown.js
Normal file
108
docs/pkgdown.js
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
/* http://gregfranko.com/blog/jquery-best-practices/ */
|
||||||
|
(function($) {
|
||||||
|
$(function() {
|
||||||
|
|
||||||
|
$('.navbar-fixed-top').headroom();
|
||||||
|
|
||||||
|
$('body').css('padding-top', $('.navbar').height() + 10);
|
||||||
|
$(window).resize(function(){
|
||||||
|
$('body').css('padding-top', $('.navbar').height() + 10);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('[data-toggle="tooltip"]').tooltip();
|
||||||
|
|
||||||
|
var cur_path = paths(location.pathname);
|
||||||
|
var links = $("#navbar ul li a");
|
||||||
|
var max_length = -1;
|
||||||
|
var pos = -1;
|
||||||
|
for (var i = 0; i < links.length; i++) {
|
||||||
|
if (links[i].getAttribute("href") === "#")
|
||||||
|
continue;
|
||||||
|
// Ignore external links
|
||||||
|
if (links[i].host !== location.host)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var nav_path = paths(links[i].pathname);
|
||||||
|
|
||||||
|
var length = prefix_length(nav_path, cur_path);
|
||||||
|
if (length > max_length) {
|
||||||
|
max_length = length;
|
||||||
|
pos = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add class to parent <li>, and enclosing <li> if in dropdown
|
||||||
|
if (pos >= 0) {
|
||||||
|
var menu_anchor = $(links[pos]);
|
||||||
|
menu_anchor.parent().addClass("active");
|
||||||
|
menu_anchor.closest("li.dropdown").addClass("active");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function paths(pathname) {
|
||||||
|
var pieces = pathname.split("/");
|
||||||
|
pieces.shift(); // always starts with /
|
||||||
|
|
||||||
|
var end = pieces[pieces.length - 1];
|
||||||
|
if (end === "index.html" || end === "")
|
||||||
|
pieces.pop();
|
||||||
|
return(pieces);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns -1 if not found
|
||||||
|
function prefix_length(needle, haystack) {
|
||||||
|
if (needle.length > haystack.length)
|
||||||
|
return(-1);
|
||||||
|
|
||||||
|
// Special case for length-0 haystack, since for loop won't run
|
||||||
|
if (haystack.length === 0) {
|
||||||
|
return(needle.length === 0 ? 0 : -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < haystack.length; i++) {
|
||||||
|
if (needle[i] != haystack[i])
|
||||||
|
return(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(haystack.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clipboard --------------------------*/
|
||||||
|
|
||||||
|
function changeTooltipMessage(element, msg) {
|
||||||
|
var tooltipOriginalTitle=element.getAttribute('data-original-title');
|
||||||
|
element.setAttribute('data-original-title', msg);
|
||||||
|
$(element).tooltip('show');
|
||||||
|
element.setAttribute('data-original-title', tooltipOriginalTitle);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ClipboardJS.isSupported()) {
|
||||||
|
$(document).ready(function() {
|
||||||
|
var copyButton = "<button type='button' class='btn btn-primary btn-copy-ex' type = 'submit' title='Copy to clipboard' aria-label='Copy to clipboard' data-toggle='tooltip' data-placement='left auto' data-trigger='hover' data-clipboard-copy><i class='fa fa-copy'></i></button>";
|
||||||
|
|
||||||
|
$("div.sourceCode").addClass("hasCopyButton");
|
||||||
|
|
||||||
|
// Insert copy buttons:
|
||||||
|
$(copyButton).prependTo(".hasCopyButton");
|
||||||
|
|
||||||
|
// Initialize tooltips:
|
||||||
|
$('.btn-copy-ex').tooltip({container: 'body'});
|
||||||
|
|
||||||
|
// Initialize clipboard:
|
||||||
|
var clipboardBtnCopies = new ClipboardJS('[data-clipboard-copy]', {
|
||||||
|
text: function(trigger) {
|
||||||
|
return trigger.parentNode.textContent.replace(/\n#>[^\n]*/g, "");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
clipboardBtnCopies.on('success', function(e) {
|
||||||
|
changeTooltipMessage(e.trigger, 'Copied!');
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
|
||||||
|
clipboardBtnCopies.on('error', function() {
|
||||||
|
changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})(window.jQuery || window.$)
|
6
docs/pkgdown.yml
Normal file
6
docs/pkgdown.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
pandoc: 2.19.2
|
||||||
|
pkgdown: 2.0.7
|
||||||
|
pkgdown_sha: ~
|
||||||
|
articles: {}
|
||||||
|
last_built: 2023-03-07T20:04Z
|
||||||
|
|
BIN
docs/reference/Rplot001.png
Normal file
BIN
docs/reference/Rplot001.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1011 B |
39
docs/sitemap.xml
Normal file
39
docs/sitemap.xml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<url>
|
||||||
|
<loc>/404.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/authors.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/index.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/news/index.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/REDCap_split.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/focused_metadata.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/index.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/match_fields_to_form.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/read_redcap_tables.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/redcap_wider.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/sanitize_split.html</loc>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>/reference/split_non_repeating_forms.html</loc>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
21
inst/WORDLIST
Normal file
21
inst/WORDLIST
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
DataDictionary
|
||||||
|
GStat
|
||||||
|
JSON
|
||||||
|
README
|
||||||
|
REDCap
|
||||||
|
REDCapR
|
||||||
|
REDCapRITS
|
||||||
|
SpectrumHealthResearch
|
||||||
|
Splitter
|
||||||
|
api
|
||||||
|
doi
|
||||||
|
dplyr
|
||||||
|
github
|
||||||
|
https
|
||||||
|
jbi
|
||||||
|
matadata
|
||||||
|
md
|
||||||
|
nad
|
||||||
|
og
|
||||||
|
thorugh
|
||||||
|
uri
|
3
tests/spelling.R
Normal file
3
tests/spelling.R
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if(requireNamespace('spelling', quietly = TRUE))
|
||||||
|
spelling::spell_check_test(vignettes = TRUE, error = FALSE,
|
||||||
|
skip_on_cran = TRUE)
|
Loading…
Reference in New Issue
Block a user