stRoke/articles/ds2dd.html

193 lines
13 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="stRoke">
<title>ds2dd • stRoke</title>
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="../deps/bootstrap-5.2.2/bootstrap.min.css" rel="stylesheet">
<script src="../deps/bootstrap-5.2.2/bootstrap.bundle.min.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
<!-- bootstrap-toc --><script src="https://cdn.jsdelivr.net/gh/afeld/bootstrap-toc@v1.0.1/dist/bootstrap-toc.min.js" integrity="sha256-4veVQbu7//Lk5TSmc7YV48MxtMy98e26cf5MrgZYnwo=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><meta property="og:title" content="ds2dd">
<meta property="og:description" content="stRoke">
<meta property="og:image" content="https://agdamsbo.github.io/stRoke/logo.png">
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
<nav class="navbar fixed-top navbar-light navbar-expand-lg bg-light"><div class="container">
<a class="navbar-brand me-2" href="../index.html">stRoke</a>
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">23.9.1</small>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbar" class="collapse navbar-collapse ms-3">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="../reference/index.html">Reference</a>
</li>
<li class="active nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown-articles">Articles</a>
<div class="dropdown-menu" aria-labelledby="dropdown-articles">
<a class="dropdown-item" href="../articles/ds2dd.html">ds2dd</a>
<a class="dropdown-item" href="../articles/toolbox.html">Toolbox</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="../news/index.html">Changelog</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0" role="search">
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
</form>
<ul class="navbar-nav">
<li class="nav-item">
<a class="external-link nav-link" href="https://github.com/agdamsbo/stRoke/" aria-label="github">
<span class="fab fa fab fa-github fa-lg"></span>
</a>
</li>
</ul>
</div>
</div>
</nav><div class="container template-article">
<div class="row">
<main id="main" class="col-md-9"><div class="page-header">
<img src="../logo.png" class="logo" alt=""><h1>ds2dd</h1>
<h4 data-toc-skip class="date">2023-09-07</h4>
<small class="dont-index">Source: <a href="https://github.com/agdamsbo/stRoke/blob/HEAD/vignettes/ds2dd.Rmd" class="external-link"><code>vignettes/ds2dd.Rmd</code></a></small>
<div class="d-none name"><code>ds2dd.Rmd</code></div>
</div>
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://agdamsbo.github.io/stRoke/">stRoke</a></span><span class="op">)</span></span></code></pre></div>
<div class="section level2">
<h2 id="easy-data-set-to-data-base-workflow">Easy data set to data base workflow<a class="anchor" aria-label="anchor" href="#easy-data-set-to-data-base-workflow"></a>
</h2>
<p>This function can be used as a simple tool for creating at data base
metadata file for REDCap (called a DataDictionary) based on a given data
set file.</p>
<div class="section level3">
<h3 id="step-1---load-your-data-set">Step 1 - Load your data set<a class="anchor" aria-label="anchor" href="#step-1---load-your-data-set"></a>
</h3>
<p>Here well use the sample TALOS dataset included with the
package.</p>
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/utils/data.html" class="external-link">data</a></span><span class="op">(</span><span class="st">"talos"</span><span class="op">)</span></span>
<span><span class="va">ds</span> <span class="op">&lt;-</span> <span class="va">talos</span></span>
<span><span class="co"># As the data set lacks an ID column, one is added</span></span>
<span><span class="va">ds</span><span class="op">$</span><span class="va">id</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/seq.html" class="external-link">seq_len</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/nrow.html" class="external-link">nrow</a></span><span class="op">(</span><span class="va">ds</span><span class="op">)</span><span class="op">)</span></span></code></pre></div>
</div>
<div class="section level3">
<h3 id="step-2---create-the-datadictionary">Step 2 - Create the DataDictionary<a class="anchor" aria-label="anchor" href="#step-2---create-the-datadictionary"></a>
</h3>
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="va">datadictionary</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/ds2dd.html">ds2dd</a></span><span class="op">(</span><span class="va">ds</span>,record.id <span class="op">=</span> <span class="st">"id"</span>,include.column.names <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div>
<p>Now additional specifications to the DataDictionary can be made
manually, or it can be uploaded and modified manually in the graphical
user interface on the web page.</p>
<p>The function will transform column names to lower case and substitute
spaces for underscores. The output is a list with the DataDictionary and
a vector of new column names for the dataset to fit the meta data.</p>
</div>
<div class="section level3">
<h3 id="step-3---meta-data-upload">Step 3 - Meta data upload<a class="anchor" aria-label="anchor" href="#step-3---meta-data-upload"></a>
</h3>
<p>Now the DataDictionary can be exported as a spreadsheet and uploaded
or it can be uploaded using the <code>REDCapR</code> package (only
projects with “Development” status).</p>
<p>Use one of the two approaches below:</p>
<div class="section level4">
<h4 id="manual-upload">Manual upload<a class="anchor" aria-label="anchor" href="#manual-upload"></a>
</h4>
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/utils/write.table.html" class="external-link">write.csv</a></span><span class="op">(</span><span class="va">datadictionary</span><span class="op">$</span><span class="va">DataDictionary</span>,<span class="st">"datadictionary.csv"</span><span class="op">)</span></span></code></pre></div>
</div>
<div class="section level4">
<h4 id="upload-with-redcapr">Upload with <code>REDCapR</code><a class="anchor" aria-label="anchor" href="#upload-with-redcapr"></a>
</h4>
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu">REDCapR</span><span class="fu">::</span><span class="fu">redcap_metadata_write</span><span class="op">(</span></span>
<span> <span class="va">datadictionary</span><span class="op">$</span><span class="va">DataDictionary</span>,</span>
<span> redcap_uri <span class="op">=</span> <span class="fu">keyring</span><span class="fu">::</span><span class="fu">key_get</span><span class="op">(</span><span class="st">"DB_URI"</span><span class="op">)</span>,</span>
<span> token <span class="op">=</span> <span class="fu">keyring</span><span class="fu">::</span><span class="fu">key_get</span><span class="op">(</span><span class="st">"DB_TOKEN"</span><span class="op">)</span></span>
<span><span class="op">)</span></span></code></pre></div>
<p>In the <a href="https://agdamsbo.github.io/redcap-r-handbook/" class="external-link">“REDCap R
Handbook”</a> more is written on interfacing with REDCap in R using the
<code><a href="https://r-lib.github.io/keyring/index.html" class="external-link">library(keyring)</a></code>to store credentials in <a href="https://agdamsbo.github.io/redcap-r-handbook/access.html#sec-getting-access" class="external-link">chapter
1.1</a>.</p>
</div>
</div>
<div class="section level3">
<h3 id="step-4---data-upload">Step 4 - Data upload<a class="anchor" aria-label="anchor" href="#step-4---data-upload"></a>
</h3>
<p>The same two options are available for data upload as meta data
upload: manual or through <code>REDCapR</code>.</p>
<p>Only the latter is shown here.</p>
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># new column names are applied</span></span>
<span><span class="fu"><a href="https://rdrr.io/r/base/colnames.html" class="external-link">colnames</a></span><span class="op">(</span><span class="va">ds</span><span class="op">)</span> <span class="op">&lt;-</span> <span class="va">datadictionary</span><span class="op">$</span><span class="va">`Column names`</span></span>
<span></span>
<span><span class="fu">REDCapR</span><span class="fu">::</span><span class="fu">redcap_write</span><span class="op">(</span></span>
<span> <span class="va">ds</span>,</span>
<span> redcap_uri <span class="op">=</span> <span class="fu">keyring</span><span class="fu">::</span><span class="fu">key_get</span><span class="op">(</span><span class="st">"DB_URI"</span><span class="op">)</span>,</span>
<span> token <span class="op">=</span> <span class="fu">keyring</span><span class="fu">::</span><span class="fu">key_get</span><span class="op">(</span><span class="st">"DB_TOKEN"</span><span class="op">)</span></span>
<span><span class="op">)</span></span></code></pre></div>
</div>
</div>
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
</nav></aside>
</div>
<footer><div class="pkgdown-footer-left">
<p></p>
<p>Developed by Andreas Gammelgaard Damsbo.</p>
</div>
<div class="pkgdown-footer-right">
<p></p>
<p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p>
</div>
</footer>
</div>
</body>
</html>