<!-- Generated by pkgdown: do not edit by hand --><htmllang="en"><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic • AMR (for R)</title><!-- favicons --><linkrel="icon"type="image/png"sizes="16x16"href="../favicon-16x16.png"><linkrel="icon"type="image/png"sizes="32x32"href="../favicon-32x32.png"><linkrel="apple-touch-icon"type="image/png"sizes="180x180"href="../apple-touch-icon.png"><linkrel="apple-touch-icon"type="image/png"sizes="120x120"href="../apple-touch-icon-120x120.png"><linkrel="apple-touch-icon"type="image/png"sizes="76x76"href="../apple-touch-icon-76x76.png"><linkrel="apple-touch-icon"type="image/png"sizes="60x60"href="../apple-touch-icon-60x60.png"><scriptsrc="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><metaname="viewport"content="width=device-width, initial-scale=1, shrink-to-fit=no"><linkhref="../deps/bootstrap-5.3.1/bootstrap.min.css"rel="stylesheet"><scriptsrc="../deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><linkhref="../deps/Lato-0.4.9/font.css"rel="stylesheet"><linkhref="../deps/Fira_Code-0.4.9/font.css"rel="stylesheet"><linkhref="../deps/font-awesome-6.5.2/css/all.min.css"rel="stylesheet"><linkhref="../deps/font-awesome-6.5.2/css/v4-shims.min.css"rel="stylesheet"><scriptsrc="../deps/headroom-0.11.0/headroom.min.js"></script><scriptsrc="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><scriptsrc="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><scriptsrc="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><scriptsrc="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><scriptsrc="../deps/search-1.0.0/fuse.min.js"></script><scriptsrc="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><scriptsrc="../pkgdown.js"></script><linkhref="../extra.css"rel="stylesheet"><scriptsrc="../extra.js"></script><metaproperty="og:title"content="Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic"><metaname="description"content='This transforms vectors to a new class mic, which treats the input as decimal numbers, while maintaining operators (such as "&gt;=") and only allowing valid MIC values known to the field of (medical) microbiology.'><metaproperty="og:description"content='This transforms vectors to a new class mic, which treats the input as decimal numbers, while maintaining operators (such as "&gt;=") and only allowing valid MIC values known to the field of (medical) microbiology.'><metaproperty="og:image"content="https://msberends.github.io/AMR/logo.svg"></head><body>
<buttonclass="nav-link dropdown-toggle"type="button"id="dropdown-how-to"data-bs-toggle="dropdown"aria-expanded="false"aria-haspopup="true"><spanclass="fa fa-question-circle"></span> How to</button>
<ulclass="dropdown-menu"aria-labelledby="dropdown-how-to"><li><aclass="dropdown-item"href="../articles/AMR.html"><spanclass="fa fa-directions"></span> Conduct AMR Analysis</a></li>
<li><aclass="dropdown-item"href="../articles/AMR_with_tidymodels.html"><spanclass="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
<p>This transforms vectors to a new class <code>mic</code>, which treats the input as decimal numbers, while maintaining operators (such as ">=") and only allowing valid MIC values known to the field of (medical) microbiology.</p>
<dd><p>a <ahref="https://rdrr.io/r/base/character.html"class="external-link">character</a> or <ahref="https://rdrr.io/r/base/numeric.html"class="external-link">numeric</a> vector</p></dd>
<dd><p>a <ahref="https://rdrr.io/r/base/character.html"class="external-link">character</a> specifying how to handle operators (such as <code>></code> and <code><=</code>) in the input. Accepts one of three values: <code>"all"</code> (or <code>TRUE</code>) to keep all operators, <code>"none"</code> (or <code>FALSE</code>) to remove all operators, or <code>"edges"</code> to keep operators only at both ends of the range.</p></dd>
<dd><p>a manual range to limit the MIC values, e.g., <code>mic_range = c(0.001, 32)</code>. Use <code>NA</code> to set no limit on one side, e.g., <code>mic_range = c(NA, 32)</code>.</p></dd>
<dd><p>a <ahref="https://rdrr.io/r/base/logical.html"class="external-link">logical</a> to indicate whether the <code>mic</code> class should be kept - the default is <code>FALSE</code></p></dd>
<p>Ordered <ahref="https://rdrr.io/r/base/factor.html"class="external-link">factor</a> with additional class <code>mic</code>, that in mathematical operations acts as a <ahref="https://rdrr.io/r/base/numeric.html"class="external-link">numeric</a> vector. Bear in mind that the outcome of any mathematical operation on MICs will return a <ahref="https://rdrr.io/r/base/numeric.html"class="external-link">numeric</a> value.</p>
<p>To interpret MIC values as SIR values, use <code><ahref="as.sir.html">as.sir()</a></code> on MIC values. It supports guidelines from EUCAST (2011-2024) and CLSI (2011-2024).</p>
<p>This class for MIC values is a quite a special data type: formally it is an ordered <ahref="https://rdrr.io/r/base/factor.html"class="external-link">factor</a> with valid MIC values as <ahref="https://rdrr.io/r/base/factor.html"class="external-link">factor</a> levels (to make sure only valid MIC values are retained), but for any mathematical operation it acts as decimal numbers:</p>
<p>This makes it possible to maintain operators that often come with MIC values, such ">=" and "<=", even when filtering using <ahref="https://rdrr.io/r/base/numeric.html"class="external-link">numeric</a> values in data analysis, e.g.:</p>
<spanid="cb1-6"><ahref="#cb1-6"tabindex="-1"></a><spanclass="fu">subset</span>(df, x <spanclass="sc">></span><spanclass="dv">4</span>) <spanclass="co"># or with dplyr: df %>% filter(x > 4)</span></span>
<spanid="cb1-7"><ahref="#cb1-7"tabindex="-1"></a><spanclass="co">#> x hospital</span></span>
<p>All so-called <ahref="https://rdrr.io/r/base/groupGeneric.html"class="external-link">group generic functions</a> are implemented for the MIC class (such as <code>!</code>, <code>!=</code>, <code><</code>, <code>>=</code>, <code><ahref="https://rdrr.io/r/base/Log.html"class="external-link">exp()</a></code>, <code><ahref="https://rdrr.io/r/base/Log.html"class="external-link">log2()</a></code>). Some functions of the <code>stats</code> package are also implemented (such as <code><ahref="https://rdrr.io/r/stats/quantile.html"class="external-link">quantile()</a></code>, <code><ahref="https://rdrr.io/r/stats/median.html"class="external-link">median()</a></code>, <code><ahref="https://rdrr.io/r/stats/fivenum.html"class="external-link">fivenum()</a></code>). Since <code><ahref="https://rdrr.io/r/stats/sd.html"class="external-link">sd()</a></code> and <code><ahref="https://rdrr.io/r/stats/cor.html"class="external-link">var()</a></code> are non-generic functions, these could not be extended. Use <code><ahref="https://rdrr.io/r/stats/mad.html"class="external-link">mad()</a></code> as an alternative, or use e.g. <code>sd(as.numeric(x))</code> where <code>x</code> is your vector of MIC values.</p>
<p>Using <code><ahref="https://rdrr.io/r/base/double.html"class="external-link">as.double()</a></code> or <code><ahref="https://rdrr.io/r/base/numeric.html"class="external-link">as.numeric()</a></code> on MIC values will remove the operators and return a numeric vector. Do <strong>not</strong> use <code><ahref="https://rdrr.io/r/base/integer.html"class="external-link">as.integer()</a></code> on MIC values as by the <spanstyle="R">R</span> convention on <ahref="https://rdrr.io/r/base/factor.html"class="external-link">factor</a>s, it will return the index of the factor levels (which is often useless for regular users).</p>
<p>Use <code><ahref="https://rdrr.io/pkg/data.table/man/fdroplevels.html"class="external-link">droplevels()</a></code> to drop unused levels. At default, it will return a plain factor. Use <code>droplevels(..., as.mic = TRUE)</code> to maintain the <code>mic</code> class.</p>
<p>With <code>rescale_mic()</code>, existing MIC ranges can be limited to a defined range of MIC values. This can be useful to better compare MIC distributions.</p>
<p>For <code>ggplot2</code>, use one of the <code><ahref="plot.html">scale_*_mic()</a></code> functions to plot MIC values. They allows custom MIC ranges and to plot intermediate log2 levels for missing MIC values.</p>
<p><code>NA_mic_</code> is a missing value of the new <code>mic</code> class, analogous to e.g. base <spanstyle="R">R</span>'s <code><ahref="https://rdrr.io/r/base/NA.html"class="external-link">NA_character_</a></code>.</p>
<spanclass="r-in"><span> x <spanclass="op">=</span><spanclass="fu">as.mic</span><spanclass="op">(</span><spanclass="fl">2</span><spanclass="op">)</span>,</span></span>
<spanclass="r-in"><span> mo <spanclass="op">=</span><spanclass="fu"><ahref="as.mo.html">as.mo</a></span><spanclass="op">(</span><spanclass="st">"Streptococcus pneumoniae"</span><spanclass="op">)</span>,</span></span>
<spanclass="r-in"><span> ab <spanclass="op">=</span><spanclass="st">"AMX"</span>,</span></span>
<spanclass="r-msg co"><spanclass="r-pr">#></span> • Multiple breakpoints available for amoxicillin (AMX) in Streptococcus pneumoniae - assuming body site 'Meningitis'.</span>
<spanclass="r-in"><span> x <spanclass="op">=</span><spanclass="fu">as.mic</span><spanclass="op">(</span><spanclass="fu"><ahref="https://rdrr.io/r/base/c.html"class="external-link">c</a></span><spanclass="op">(</span><spanclass="fl">0.01</span>, <spanclass="fl">2</span>, <spanclass="fl">4</span>, <spanclass="fl">8</span><spanclass="op">)</span><spanclass="op">)</span>,</span></span>
<spanclass="r-in"><span> mo <spanclass="op">=</span><spanclass="fu"><ahref="as.mo.html">as.mo</a></span><spanclass="op">(</span><spanclass="st">"Streptococcus pneumoniae"</span><spanclass="op">)</span>,</span></span>
<spanclass="r-in"><span> ab <spanclass="op">=</span><spanclass="st">"AMX"</span>,</span></span>
<spanclass="r-msg co"><spanclass="r-pr">#></span> • Multiple breakpoints available for amoxicillin (AMX) in Streptococcus pneumoniae - assuming body site 'Meningitis'.</span>
<spanclass="r-in"><span><spanclass="fu"><ahref="plot.html">plot</a></span><spanclass="op">(</span><spanclass="va">mic_data</span>, mo <spanclass="op">=</span><spanclass="st">"E. coli"</span>, ab <spanclass="op">=</span><spanclass="st">"cipro"</span><spanclass="op">)</span></span></span>
<spanclass="r-in"><span><spanclass="fu"><ahref="https://ggplot2.tidyverse.org/reference/autoplot.html"class="external-link">autoplot</a></span><spanclass="op">(</span><spanclass="va">mic_data</span>, mo <spanclass="op">=</span><spanclass="st">"E. coli"</span>, ab <spanclass="op">=</span><spanclass="st">"cipro"</span><spanclass="op">)</span></span></span>
<spanclass="r-in"><span><spanclass="fu"><ahref="https://ggplot2.tidyverse.org/reference/autoplot.html"class="external-link">autoplot</a></span><spanclass="op">(</span><spanclass="va">mic_data</span>, mo <spanclass="op">=</span><spanclass="st">"E. coli"</span>, ab <spanclass="op">=</span><spanclass="st">"cipro"</span>, language <spanclass="op">=</span><spanclass="st">"nl"</span><spanclass="op">)</span><spanclass="co"># Dutch</span></span></span>
<p><code>AMR</code> (for R). Free and open-source, licenced under the <atarget="_blank"href="https://github.com/msberends/AMR/blob/main/LICENSE"class="external-link">GNU General Public License version 2.0 (GPL-2)</a>.<br>Developed at the <atarget="_blank"href="https://www.rug.nl"class="external-link">University of Groningen</a> and <atarget="_blank"href="https://www.umcg.nl"class="external-link">University Medical Center Groningen</a> in The Netherlands.</p>