aboutsummaryrefslogtreecommitdiff
path: root/docs/reference/mkindsg.html
diff options
context:
space:
mode:
authorJohannes Ranke <jranke@uni-bremen.de>2021-02-03 16:41:31 +0100
committerJohannes Ranke <jranke@uni-bremen.de>2021-02-03 18:18:19 +0100
commitf0ef23a7598e5d19648ae4edc2b74e0fba27a41c (patch)
tree03af20e730330e148acf3a7c008d82387dbe52eb /docs/reference/mkindsg.html
parent82814b17ec182467c25325d747fffa8ffbe4bb33 (diff)
Prepare for v1.0.0v1.0.0
- Improve authorship and copyright information - Prepare pkgdown config - Remove dependence on saemix as we need the development version which is not ready for CRAN - Temporarily remove saemix interface to check code coverage of the rest
Diffstat (limited to 'docs/reference/mkindsg.html')
-rw-r--r--docs/reference/mkindsg.html460
1 files changed, 460 insertions, 0 deletions
diff --git a/docs/reference/mkindsg.html b/docs/reference/mkindsg.html
new file mode 100644
index 00000000..74d3a26c
--- /dev/null
+++ b/docs/reference/mkindsg.html
@@ -0,0 +1,460 @@
+<!-- Generated by pkgdown: do not edit by hand -->
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<title>A class for dataset groups for mkin — mkindsg • mkin</title>
+
+
+<!-- jquery -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+<!-- Bootstrap -->
+
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous" />
+
+<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script>
+
+<!-- bootstrap-toc -->
+<link rel="stylesheet" href="../bootstrap-toc.css">
+<script src="../bootstrap-toc.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" />
+
+<!-- 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>
+
+<!-- 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>
+
+<!-- pkgdown -->
+<link href="../pkgdown.css" rel="stylesheet">
+<script src="../pkgdown.js"></script>
+
+
+
+
+<meta property="og:title" content="A class for dataset groups for mkin — mkindsg" />
+<meta property="og:description" content="A container for working with datasets that share at least one compound,
+so that combined evaluations are desirable.
+Time normalisation factors are initialised with a value of 1 for each
+dataset if no data are supplied." />
+
+
+
+
+<!-- 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 data-spy="scroll" data-target="#toc">
+ <div class="container template-reference-topic">
+ <header>
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <span class="navbar-brand">
+ <a class="navbar-link" href="../index.html">mkin</a>
+ <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.0.0</span>
+ </span>
+ </div>
+
+ <div id="navbar" class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li>
+ <a href="../reference/index.html">Functions and data</a>
+</li>
+<li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
+ Articles
+
+ <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="../articles/mkin.html">Introduction to mkin</a>
+ </li>
+ <li>
+ <a href="../articles/FOCUS_D.html">Example evaluation of FOCUS Example Dataset D</a>
+ </li>
+ <li>
+ <a href="../articles/FOCUS_L.html">Example evaluation of FOCUS Laboratory Data L1 to L3</a>
+ </li>
+ <li>
+ <a href="../articles/web_only/FOCUS_Z.html">Example evaluation of FOCUS Example Dataset Z</a>
+ </li>
+ <li>
+ <a href="../articles/web_only/compiled_models.html">Performance benefit by using compiled model definitions in mkin</a>
+ </li>
+ <li>
+ <a href="../articles/twa.html">Calculation of time weighted average concentrations with mkin</a>
+ </li>
+ <li>
+ <a href="../articles/web_only/NAFTA_examples.html">Example evaluation of NAFTA SOP Attachment examples</a>
+ </li>
+ <li>
+ <a href="../articles/web_only/benchmarks.html">Some benchmark timings</a>
+ </li>
+ </ul>
+</li>
+<li>
+ <a href="../news/index.html">News</a>
+</li>
+ </ul>
+ <ul class="nav navbar-nav navbar-right">
+ <li>
+ <a href="https://github.com/jranke/mkin/">
+ <span class="fab fa-github fa-lg"></span>
+
+ </a>
+</li>
+ </ul>
+
+ </div><!--/.nav-collapse -->
+ </div><!--/.container -->
+</div><!--/.navbar -->
+
+
+
+ </header>
+
+<div class="row">
+ <div class="col-md-9 contents">
+ <div class="page-header">
+ <h1>A class for dataset groups for mkin</h1>
+ <small class="dont-index">Source: <a href='https://github.com/jranke/mkin/blob/master/R/mkinds.R'><code>R/mkinds.R</code></a></small>
+ <div class="hidden name"><code>mkindsg.Rd</code></div>
+ </div>
+
+ <div class="ref-description">
+ <p>A container for working with datasets that share at least one compound,
+so that combined evaluations are desirable.</p>
+<p>Time normalisation factors are initialised with a value of 1 for each
+dataset if no data are supplied.</p>
+ </div>
+
+ <pre class="usage"><span class='co'># S3 method for mkindsg</span>
+<span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span><span class='op'>(</span><span class='va'>x</span>, data <span class='op'>=</span> <span class='cn'>FALSE</span>, verbose <span class='op'>=</span> <span class='va'>data</span>, <span class='va'>...</span><span class='op'>)</span></pre>
+
+ <h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
+ <table class="ref-arguments">
+ <colgroup><col class="name" /><col class="desc" /></colgroup>
+ <tr>
+ <th>x</th>
+ <td><p>An mkindsg object.</p></td>
+ </tr>
+ <tr>
+ <th>data</th>
+ <td><p>Should the mkinds objects be printed with their data?</p></td>
+ </tr>
+ <tr>
+ <th>verbose</th>
+ <td><p>Should the mkinds objects be printed?</p></td>
+ </tr>
+ <tr>
+ <th>...</th>
+ <td><p>Not used.</p></td>
+ </tr>
+ </table>
+
+ <h2 class="hasAnchor" id="public-fields"><a class="anchor" href="#public-fields"></a>Public fields</h2>
+
+ <p><div class="r6-fields"></p><dl>
+<dt><code>title</code></dt><dd><p>A title for the dataset group</p></dd>
+
+<dt><code>ds</code></dt><dd><p>A list of mkinds objects</p></dd>
+
+<dt><code>observed_n</code></dt><dd><p>Occurrence counts of compounds in datasets</p></dd>
+
+<dt><code>f_time_norm</code></dt><dd><p>Time normalisation factors</p></dd>
+
+<dt><code>meta</code></dt><dd><p>A data frame with a row for each dataset,
+containing additional information in the form
+of categorical data (factors) or numerical data
+(e.g. temperature, moisture,
+or covariates like soil pH).</p></dd>
+
+</dl><p></div></p>
+ <h2 class="hasAnchor" id="methods"><a class="anchor" href="#methods"></a>Methods</h2>
+
+
+<h3 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Public methods</h3>
+
+<ul>
+<li><p><a href='#method-new'><code>mkindsg$new()</code></a></p></li>
+<li><p><a href='#method-clone'><code>mkindsg$clone()</code></a></p></li>
+</ul>
+<p><hr>
+<a id="method-new"></a></p><h3 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Method <code>new()</code></h3>
+<p>Create a new mkindsg object</p><h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Usage</h4>
+<p><div class="r"></p><pre><span class='va'>mkindsg</span><span class='op'>$</span><span class='fu'>new</span><span class='op'>(</span>title <span class='op'>=</span> <span class='st'>""</span>, <span class='va'>ds</span>, f_time_norm <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/rep.html'>rep</a></span><span class='op'>(</span><span class='fl'>1</span>, <span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>ds</span><span class='op'>)</span><span class='op'>)</span>, <span class='va'>meta</span><span class='op'>)</span></pre><p></div></p>
+
+<h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Arguments</h4>
+<p><div class="arguments"></p><dl>
+<dt><code>title</code></dt><dd><p>The title</p></dd>
+
+<dt><code>ds</code></dt><dd><p>A list of mkinds objects</p></dd>
+
+<dt><code>f_time_norm</code></dt><dd><p>Time normalisation factors</p></dd>
+
+<dt><code>meta</code></dt><dd><p>The meta data</p></dd>
+
+</dl><p></div></p>
+<p><hr>
+<a id="method-clone"></a></p><h3 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Method <code>clone()</code></h3>
+<p>The objects of this class are cloneable with this method.</p><h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Usage</h4>
+<p><div class="r"></p><pre><span class='va'>mkindsg</span><span class='op'>$</span><span class='fu'>clone</span><span class='op'>(</span>deep <span class='op'>=</span> <span class='cn'>FALSE</span><span class='op'>)</span></pre><p></div></p>
+
+<h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Arguments</h4>
+<p><div class="arguments"></p><dl>
+<dt><code>deep</code></dt><dd><p>Whether to make a deep clone.</p></dd>
+
+</dl><p></div></p>
+
+
+
+ <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
+ <pre class="examples"><div class='input'>
+<span class='va'>mdsg</span> <span class='op'>&lt;-</span> <span class='va'>mkindsg</span><span class='op'>$</span><span class='fu'>new</span><span class='op'>(</span><span class='st'>"Experimental X"</span>, <span class='va'>experimental_data_for_UBA_2019</span><span class='op'>[</span><span class='fl'>6</span><span class='op'>:</span><span class='fl'>10</span><span class='op'>]</span><span class='op'>)</span>
+<span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span><span class='op'>(</span><span class='va'>mdsg</span><span class='op'>)</span>
+</div><div class='output co'>#&gt; &lt;mkindsg&gt; holding 5 mkinds objects
+#&gt; Title $title: Experimental X
+#&gt; Occurrence of observed compounds $observed_n:
+#&gt; parent A1
+#&gt; 5 5 </div><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span><span class='op'>(</span><span class='va'>mdsg</span>, verbose <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span>
+</div><div class='output co'>#&gt; &lt;mkindsg&gt; holding 5 mkinds objects
+#&gt; Title $title: Experimental X
+#&gt; Occurrence of observed compounds $observed_n:
+#&gt; parent A1
+#&gt; 5 5
+#&gt;
+#&gt; Datasets $ds:
+#&gt; &lt;mkinds&gt; with $title: Soil 6
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 3, 6, 10, 20, 34, 55, 90, 112, 132
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 7
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 3, 7, 14, 30, 60, 90, 120, 180
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 8
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 1, 3, 8, 14, 27, 48, 70
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 9
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 1, 3, 8, 14, 27, 48, 70, 91, 120
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 10
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 8, 14, 21, 41, 63, 91, 120
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR </div><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span><span class='op'>(</span><span class='va'>mdsg</span>, verbose <span class='op'>=</span> <span class='cn'>TRUE</span>, data <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span>
+</div><div class='output co'>#&gt; &lt;mkindsg&gt; holding 5 mkinds objects
+#&gt; Title $title: Experimental X
+#&gt; Occurrence of observed compounds $observed_n:
+#&gt; parent A1
+#&gt; 5 5
+#&gt;
+#&gt; Datasets $ds:
+#&gt; &lt;mkinds&gt; with $title: Soil 6
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 3, 6, 10, 20, 34, 55, 90, 112, 132
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt; time parent A1
+#&gt; 1 0 97.2 NA
+#&gt; 2 0 96.4 NA
+#&gt; 3 3 71.1 4.3
+#&gt; 4 3 69.2 4.6
+#&gt; 5 6 58.1 7.0
+#&gt; 6 6 56.6 7.2
+#&gt; 7 10 44.4 8.2
+#&gt; 8 10 43.4 8.0
+#&gt; 9 20 33.3 11.0
+#&gt; 10 20 29.2 13.7
+#&gt; 11 34 17.6 11.5
+#&gt; 12 34 18.0 12.7
+#&gt; 13 55 10.5 14.9
+#&gt; 14 55 9.3 14.5
+#&gt; 15 90 4.5 12.1
+#&gt; 16 90 4.7 12.3
+#&gt; 17 112 3.0 9.9
+#&gt; 18 112 3.4 10.2
+#&gt; 19 132 2.3 8.8
+#&gt; 20 132 2.7 7.8
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 7
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 3, 7, 14, 30, 60, 90, 120, 180
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt; time parent A1
+#&gt; 1 0 93.6 NA
+#&gt; 2 0 92.3 NA
+#&gt; 3 3 87.0 3.9
+#&gt; 4 3 82.2 3.1
+#&gt; 5 7 74.0 6.9
+#&gt; 6 7 73.9 6.6
+#&gt; 7 14 64.2 10.4
+#&gt; 8 14 69.5 8.3
+#&gt; 9 30 54.0 14.4
+#&gt; 10 30 54.6 13.7
+#&gt; 11 60 41.1 22.1
+#&gt; 12 60 38.4 22.3
+#&gt; 13 90 32.5 27.5
+#&gt; 14 90 35.5 25.4
+#&gt; 15 120 28.1 28.0
+#&gt; 16 120 29.0 26.6
+#&gt; 17 180 26.5 25.8
+#&gt; 18 180 27.6 25.3
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 8
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 1, 3, 8, 14, 27, 48, 70
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt; time parent A1
+#&gt; 1 0 91.9 NA
+#&gt; 2 0 90.8 NA
+#&gt; 3 1 64.9 9.6
+#&gt; 4 1 66.2 7.7
+#&gt; 5 3 43.5 15.0
+#&gt; 6 3 44.1 15.1
+#&gt; 7 8 18.3 21.2
+#&gt; 8 8 18.1 21.1
+#&gt; 9 14 10.2 19.7
+#&gt; 10 14 10.8 18.9
+#&gt; 11 27 4.9 17.5
+#&gt; 12 27 3.3 15.9
+#&gt; 13 48 1.6 9.5
+#&gt; 14 48 1.5 9.8
+#&gt; 15 70 1.1 6.2
+#&gt; 16 70 0.9 6.1
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 9
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 1, 3, 8, 14, 27, 48, 70, 91, 120
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt; time parent A1
+#&gt; 1 0 99.8 NA
+#&gt; 2 0 98.3 NA
+#&gt; 3 1 77.1 4.2
+#&gt; 4 1 77.2 3.9
+#&gt; 5 3 59.0 7.4
+#&gt; 6 3 58.1 7.9
+#&gt; 7 8 27.4 14.5
+#&gt; 8 8 29.2 13.7
+#&gt; 9 14 19.1 14.2
+#&gt; 10 14 29.6 12.2
+#&gt; 11 27 10.1 13.7
+#&gt; 12 27 18.2 13.2
+#&gt; 13 48 4.5 13.6
+#&gt; 14 48 9.1 15.4
+#&gt; 15 70 2.3 10.4
+#&gt; 16 70 2.9 11.6
+#&gt; 17 91 2.0 10.0
+#&gt; 18 91 1.8 9.5
+#&gt; 19 120 2.0 9.1
+#&gt; 20 120 2.2 9.0
+#&gt;
+#&gt; &lt;mkinds&gt; with $title: Soil 10
+#&gt; Observed compounds $observed: parent, A1
+#&gt; Sampling times $sampling_times:
+#&gt; 0, 8, 14, 21, 41, 63, 91, 120
+#&gt; With a maximum of 2 replicates
+#&gt; Time unit: days
+#&gt; Observation unit: \%AR
+#&gt; time parent A1
+#&gt; 1 0 96.1 NA
+#&gt; 2 0 94.3 NA
+#&gt; 3 8 73.9 3.3
+#&gt; 4 8 73.9 3.4
+#&gt; 5 14 69.4 3.9
+#&gt; 6 14 73.1 2.9
+#&gt; 7 21 65.6 6.4
+#&gt; 8 21 65.3 7.2
+#&gt; 9 41 55.9 9.1
+#&gt; 10 41 54.4 8.5
+#&gt; 11 63 47.0 11.7
+#&gt; 12 63 49.3 12.0
+#&gt; 13 91 44.7 13.3
+#&gt; 14 91 46.7 13.2
+#&gt; 15 120 42.1 14.3
+#&gt; 16 120 41.3 12.1</div><div class='input'>
+</div></pre>
+ </div>
+ <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
+ <nav id="toc" data-toggle="toc" class="sticky-top">
+ <h2 data-toc-skip>Contents</h2>
+ </nav>
+ </div>
+</div>
+
+
+ <footer>
+ <div class="copyright">
+ <p>Developed by Johannes Ranke.</p>
+</div>
+
+<div class="pkgdown">
+ <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p>
+</div>
+
+ </footer>
+ </div>
+
+
+
+
+ </body>
+</html>
+
+

Contact - Imprint