<!-- 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>Principal Component Analysis (for AMR) — pca • 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.4.2/css/all.min.css"rel="stylesheet"><linkhref="../deps/font-awesome-6.4.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="Principal Component Analysis (for AMR) — pca"><metaname="description"content="Performs a principal component analysis (PCA) based on a data set with automatic determination for afterwards plotting the groups and labels, and automatic filtering on only suitable (i.e. non-empty and numeric) variables."><metaproperty="og:description"content="Performs a principal component analysis (PCA) based on a data set with automatic determination for afterwards plotting the groups and labels, and automatic filtering on only suitable (i.e. non-empty and numeric) variables."><metaproperty="og:image"content="https://msberends.github.io/AMR/logo.svg"><metaname="twitter:card"content="summary_large_image"><metaname="twitter:creator"content="@msberends"><metaname="twitter:site"content="@msberends"></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>
<buttonclass="nav-link dropdown-toggle"type="button"id="dropdown-with-other-pkgs"data-bs-toggle="dropdown"aria-expanded="false"aria-haspopup="true"><spanclass="fa fa-layer-group"></span> With other pkgs</button>
<ulclass="dropdown-menu"aria-labelledby="dropdown-with-other-pkgs"><li><aclass="dropdown-item"href="../articles/other_pkg.html"><spanclass="fa fa-layer-group"></span> AMR & dplyr/tidyverse</a></li>
<li><aclass="dropdown-item"href="../articles/other_pkg.html"><spanclass="fa fa-layer-group"></span> AMR & data.table</a></li>
<li><aclass="dropdown-item"href="../articles/other_pkg.html"><spanclass="fa fa-layer-group"></span> AMR & tidymodels</a></li>
<li><aclass="dropdown-item"href="../articles/other_pkg.html"><spanclass="fa fa-layer-group"></span> AMR & base R</a></li>
<p>Performs a principal component analysis (PCA) based on a data set with automatic determination for afterwards plotting the groups and labels, and automatic filtering on only suitable (i.e. non-empty and numeric) variables.</p>
<p>The <code>pca()</code> function takes a <ahref="https://rdrr.io/r/base/data.frame.html"class="external-link">data.frame</a> as input and performs the actual PCA with the <spanstyle="R">R</span> function <code><ahref="https://rdrr.io/r/stats/prcomp.html"class="external-link">prcomp()</a></code>.</p>
<p>The result of the <code>pca()</code> function is a <ahref="https://rdrr.io/r/stats/prcomp.html"class="external-link">prcomp</a> object, with an additional attribute <code>non_numeric_cols</code> which is a vector with the column names of all columns that do not contain <ahref="https://rdrr.io/r/base/numeric.html"class="external-link">numeric</a> values. These are probably the groups and labels, and will be used by <code><ahref="ggplot_pca.html">ggplot_pca()</a></code>.</p>
<divclass="sourceCode"><preclass="sourceCode r"><code><spanclass="r-in"><span><spanclass="co"># `example_isolates` is a data set available in the AMR package.</span></span></span>
<spanclass="r-in"><span><spanclass="co"># See ?example_isolates.</span></span></span>
<spanclass="r-in"><span> order <spanclass="op">=</span><spanclass="fu"><ahref="mo_property.html">mo_order</a></span><spanclass="op">(</span><spanclass="va">mo</span><spanclass="op">)</span>, <spanclass="co"># group on anything, like order</span></span></span>
<spanclass="r-in"><span> genus <spanclass="op">=</span><spanclass="fu"><ahref="mo_property.html">mo_genus</a></span><spanclass="op">(</span><spanclass="va">mo</span><spanclass="op">)</span></span></span>
<spanclass="r-in"><span><spanclass="op">)</span><spanclass="op"><ahref="https://magrittr.tidyverse.org/reference/pipe.html"class="external-link">%>%</a></span><spanclass="co"># and genus as we do here;</span></span></span>
<spanclass="r-in"><span><spanclass="fu"><ahref="https://dplyr.tidyverse.org/reference/filter.html"class="external-link">filter</a></span><spanclass="op">(</span><spanclass="fu"><ahref="https://dplyr.tidyverse.org/reference/context.html"class="external-link">n</a></span><spanclass="op">(</span><spanclass="op">)</span><spanclass="op">>=</span><spanclass="fl">30</span><spanclass="op">)</span><spanclass="op"><ahref="https://magrittr.tidyverse.org/reference/pipe.html"class="external-link">%>%</a></span><spanclass="co"># filter on only 30 results per group</span></span></span>
<spanclass="r-in"><span><spanclass="fu"><ahref="https://dplyr.tidyverse.org/reference/summarise_all.html"class="external-link">summarise_if</a></span><spanclass="op">(</span><spanclass="va">is.sir</span>, <spanclass="va">resistance</span><spanclass="op">)</span><spanclass="co"># then get resistance of all drugs</span></span></span>
<spanclass="r-wrn co"><spanclass="r-pr">#></span><spanstyle="color: #00BBBB;">ℹ</span> In group 5: `order = "Lactobacillales"` and `genus = "Enterococcus"`.</span>
<spanclass="r-wrn co"><spanclass="r-pr">#></span> Caused by warning:</span>
<spanclass="r-wrn co"><spanclass="r-pr">#></span><spanstyle="color: #BBBB00;">!</span> Introducing NA: only 14 results available for PEN in group: order =</span>
<spanclass="r-wrn co"><spanclass="r-pr">#></span> "Lactobacillales", genus = "Enterococcus" (minimum = 30).</span>
<spanclass="r-wrn co"><spanclass="r-pr">#></span><spanstyle="color: #00BBBB;">ℹ</span> Run `dplyr::last_dplyr_warnings()` to see the 72 remaining warnings.</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>