<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>数据处理 - 标签 - 灿若星河 | 郝建锋</title><link>https://philohao.com/tags/%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86/</link><description>数据处理 - 标签 - 灿若星河 | 郝建锋</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>haojianfeng1997@gmail.com (Jianfeng.Hao)</managingEditor><webMaster>haojianfeng1997@gmail.com (Jianfeng.Hao)</webMaster><lastBuildDate>Thu, 15 Mar 2018 12:19:00 +0800</lastBuildDate><atom:link href="https://philohao.com/tags/%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86/index.xml" rel="self" type="application/rss+xml"/><item><title>数据操作-apply函数族</title><link>https://philohao.com/2018/03/20180315/</link><pubDate>Thu, 15 Mar 2018 12:19:00 +0800</pubDate><dc:creator>Jianfeng.Hao</dc:creator><author>haojianfeng1997@gmail.com (Jianfeng.Hao)</author><guid isPermaLink="true">https://philohao.com/2018/03/20180315/</guid><description>R 语言 apply 函数族学习笔记，记录不同数据结构下的循环处理方式。</description><content:encoded><![CDATA[<center><i>
    R 作为一种向量化的编程语言，一大特征便是以向量计算替代了循环计算，使效率大大提升。<br>
    apply函数族正是为解决数据循环处理问题而生的 —— 面向不同数据类型，生成不同返回值的包含8个相关函数的函数族。
</i></center>
<h2 id="为何要用apply">为何要用apply？</h2>
<p>在使用 R 时，要尽量用 array 的方式思考，避免 for 循环，写过多的 for 循环代码，最后把 R 代码写的跟 C 似得说明你没有进入 R 的思考方式，是一种费力不讨好的行为。那么不用循环怎么实现迭代呢？apply函数族是一把利器，它不是一个函数，而是一族功能类似的函数。</p>
<br>
<hr>
<h2 id="语法详解">语法详解</h2>
<h3 id="apply">apply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">apply</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">margin</span><span class="p">,</span> <span class="n">FUN</span><span class="p">,</span> <span class="kc">...</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
X：数组、矩阵、数据框
margin：按维度运算，1表示按行，2表示按列，c(1,3)表示第1、3维
FUN：要使用的函数</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">mat</span> <span class="o">&lt;-</span> <span class="nf">matrix</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">12</span><span class="p">,</span> <span class="m">3</span><span class="p">,</span> <span class="m">4</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">mat</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">4</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">4</span>    <span class="m">7</span>   <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">5</span>    <span class="m">8</span>   <span class="m">11</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>    <span class="m">3</span>    <span class="m">6</span>    <span class="m">9</span>   <span class="m">12</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">apply</span><span class="p">(</span><span class="n">mat</span><span class="p">,</span> <span class="m">2</span><span class="p">,</span> <span class="n">sum</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span>  <span class="m">6</span> <span class="m">15</span> <span class="m">24</span> <span class="m">33</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">ary</span> <span class="o">&lt;-</span> <span class="nf">array</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">12</span><span class="p">,</span> <span class="nf">c</span><span class="p">(</span><span class="m">2</span><span class="p">,</span><span class="m">3</span><span class="p">,</span><span class="m">2</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">ary</span>
</span></span><span class="line"><span class="cl"><span class="p">,</span> <span class="p">,</span> <span class="m">1</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">3</span>    <span class="m">5</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">4</span>    <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="p">,</span> <span class="p">,</span> <span class="m">2</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">7</span>    <span class="m">9</span>   <span class="m">11</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">8</span>   <span class="m">10</span>   <span class="m">12</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">apply</span><span class="p">(</span><span class="n">ary</span><span class="p">,</span> <span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="m">3</span><span class="p">),</span> <span class="n">sum</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">9</span>   <span class="m">27</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>   <span class="m">12</span>   <span class="m">30</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span> <span class="o">&lt;-</span> <span class="nf">data.frame</span><span class="p">(</span><span class="n">x1</span><span class="o">=</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">,</span> <span class="n">x2</span><span class="o">=</span><span class="m">6</span><span class="o">:</span><span class="m">10</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span>
</span></span><span class="line"><span class="cl">  <span class="n">x1</span> <span class="n">x2</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span>  <span class="m">1</span>  <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span>  <span class="m">2</span>  <span class="m">7</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span>  <span class="m">3</span>  <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span>  <span class="m">4</span>  <span class="m">9</span>
</span></span><span class="line"><span class="cl"><span class="m">5</span>  <span class="m">5</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">apply</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="m">2</span><span class="p">,</span> <span class="n">mean</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">x1</span> <span class="n">x2</span> 
</span></span><span class="line"><span class="cl"> <span class="m">3</span>  <span class="m">8</span> 
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="tapply">tapply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">tapply</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">INDEX</span><span class="p">,</span> <span class="n">FUN</span> <span class="o">=</span> <span class="kc">NULL</span><span class="p">,</span> <span class="kc">...</span><span class="p">,</span> <span class="n">simplify</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
X：向量、数组
INDEX：用于分组的索引
FUN：要使用的函数
simplify : 是否数组化，当值TRUE时，输出结果按数组进行分组输出</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">x</span> <span class="o">&lt;-</span> <span class="m">1</span><span class="o">:</span><span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">INDEX</span> <span class="o">&lt;-</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#39;a&#39;</span><span class="p">,</span><span class="s">&#39;a&#39;</span><span class="p">,</span><span class="s">&#39;b&#39;</span><span class="p">,</span><span class="s">&#39;c&#39;</span><span class="p">,</span><span class="s">&#39;c&#39;</span><span class="p">,</span><span class="s">&#39;c&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">tapply</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">INDEX</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">3</span> <span class="m">3</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">tapply</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">INDEX</span><span class="p">,</span> <span class="n">sum</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="n">a</span>  <span class="n">b</span>  <span class="n">c</span> 
</span></span><span class="line"><span class="cl"> <span class="m">3</span>  <span class="m">3</span> <span class="m">15</span> 
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">mat</span> <span class="o">&lt;-</span> <span class="nf">matrix</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">10</span><span class="p">,</span> <span class="m">2</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">mat</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">4</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">5</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">3</span>    <span class="m">5</span>    <span class="m">7</span>    <span class="m">9</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">4</span>    <span class="m">6</span>    <span class="m">8</span>   <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">INDEX</span> <span class="o">&lt;-</span> <span class="nf">matrix</span><span class="p">(</span><span class="nf">c</span><span class="p">(</span><span class="nf">rep</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="m">5</span><span class="p">),</span> <span class="nf">rep</span><span class="p">(</span><span class="m">2</span><span class="p">,</span><span class="m">5</span><span class="p">)),</span> <span class="n">nrow</span><span class="o">=</span><span class="m">2</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">INDEX</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">4</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">5</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">1</span>    <span class="m">1</span>    <span class="m">2</span>    <span class="m">2</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">1</span>    <span class="m">2</span>    <span class="m">2</span>    <span class="m">2</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">tapply</span><span class="p">(</span><span class="n">mat</span><span class="p">,</span> <span class="n">INDEX</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span> <span class="m">1</span> <span class="m">1</span> <span class="m">1</span> <span class="m">1</span> <span class="m">1</span> <span class="m">2</span> <span class="m">2</span> <span class="m">2</span> <span class="m">2</span> <span class="m">2</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">tapply</span><span class="p">(</span><span class="n">mat</span><span class="p">,</span> <span class="n">INDEX</span><span class="p">,</span> <span class="n">mean</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span> <span class="m">2</span> 
</span></span><span class="line"><span class="cl"><span class="m">3</span> <span class="m">8</span> 
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="lapply">lapply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">lapply</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">FUN</span><span class="p">,</span> <span class="kc">...</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
X：列表、向量、数据框
FUN：要使用的函数</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">lst</span> <span class="o">&lt;-</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="m">1</span><span class="o">:</span><span class="m">10</span><span class="p">,</span> <span class="n">b</span><span class="o">=</span><span class="nf">seq</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="m">7</span><span class="p">,</span><span class="m">2</span><span class="p">),</span> <span class="n">c</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">2</span><span class="p">,</span><span class="m">5</span><span class="p">,</span><span class="m">8</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">lst</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span>  <span class="m">1</span>  <span class="m">2</span>  <span class="m">3</span>  <span class="m">4</span>  <span class="m">5</span>  <span class="m">6</span>  <span class="m">7</span>  <span class="m">8</span>  <span class="m">9</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">0</span> <span class="m">2</span> <span class="m">4</span> <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">c</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">2</span> <span class="m">5</span> <span class="m">8</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">lapply</span><span class="p">(</span><span class="n">lst</span><span class="p">,</span> <span class="n">mean</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">5.5</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">3</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">c</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">5</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span> <span class="o">&lt;-</span> <span class="nf">data.frame</span><span class="p">(</span><span class="n">x1</span><span class="o">=</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">,</span> <span class="n">x2</span><span class="o">=</span><span class="m">6</span><span class="o">:</span><span class="m">10</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span>
</span></span><span class="line"><span class="cl">  <span class="n">x1</span> <span class="n">x2</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span>  <span class="m">1</span>  <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span>  <span class="m">2</span>  <span class="m">7</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span>  <span class="m">3</span>  <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span>  <span class="m">4</span>  <span class="m">9</span>
</span></span><span class="line"><span class="cl"><span class="m">5</span>  <span class="m">5</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">lapply</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">sum</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">x1</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">15</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">x2</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">40</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">isLeapYear</span> <span class="o">&lt;-</span> <span class="kr">function</span><span class="p">(</span><span class="n">a</span><span class="p">){</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span>   <span class="kr">if</span><span class="p">(</span> <span class="p">(</span><span class="n">a</span><span class="o">%%</span><span class="m">4</span><span class="o">==</span><span class="m">0</span> <span class="o">&amp;</span> <span class="n">a</span><span class="o">%/%</span><span class="m">100</span><span class="o">!=</span><span class="m">0</span><span class="p">)</span> <span class="o">|</span> <span class="n">a</span><span class="o">%%</span><span class="m">400</span><span class="o">==</span><span class="m">0</span> <span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span>     <span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">a</span> <span class="o">&lt;-</span> <span class="m">1900</span><span class="o">:</span><span class="m">1910</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">unlist</span><span class="p">(</span><span class="nf">lapply</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">isLeapYear</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1900</span> <span class="m">1904</span> <span class="m">1908</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="rapply">rapply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">rapply</span><span class="p">(</span><span class="n">list</span><span class="p">,</span> <span class="n">f</span><span class="p">,</span> <span class="n">classes</span> <span class="o">=</span> <span class="s">&#34;ANY&#34;</span><span class="p">,</span> <span class="n">deflt</span> <span class="o">=</span> <span class="kc">NULL</span><span class="p">,</span><span class="n">how</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;unlist&#34;</span><span class="p">,</span> <span class="s">&#34;replace&#34;</span><span class="p">,</span> <span class="s">&#34;list&#34;</span><span class="p">),</span> <span class="kc">...</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
list：列表
f：要使用的函数
classes： 匹配类型, ANY为所有类型
deflt: 非匹配类型的默认值
how: 3种操作方式，</p>
<ul>
<li>replace：则用调用f后的结果替换原list中原来的元素；</li>
<li>list：新建一个list，类型匹配调用f函数，不匹配赋值为deflt；</li>
<li>unlist：执行一次unlist(recursive = TRUE)操作</li>
</ul>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">lst</span> <span class="o">&lt;-</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="nf">list</span><span class="p">(</span><span class="n">aa</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">),</span> <span class="n">ab</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">6</span><span class="o">:</span><span class="m">10</span><span class="p">)),</span> <span class="n">b</span><span class="o">=</span><span class="nf">list</span><span class="p">(</span><span class="n">ba</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">10</span><span class="p">)))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">lst</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span><span class="o">$</span><span class="n">aa</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span> <span class="m">5</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span><span class="o">$</span><span class="n">ab</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span>  <span class="m">6</span>  <span class="m">7</span>  <span class="m">8</span>  <span class="m">9</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">ba</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span>  <span class="m">1</span>  <span class="m">2</span>  <span class="m">3</span>  <span class="m">4</span>  <span class="m">5</span>  <span class="m">6</span>  <span class="m">7</span>  <span class="m">8</span>  <span class="m">9</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">rapply</span><span class="p">(</span><span class="n">lst</span><span class="p">,</span> <span class="n">sum</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s">&#34;replace&#34;</span><span class="p">)</span>  <span class="c1"># 输出结果为list</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span><span class="o">$</span><span class="n">aa</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">15</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span><span class="o">$</span><span class="n">ab</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">40</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">ba</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">55</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">rapply</span><span class="p">(</span><span class="n">lst</span><span class="p">,</span> <span class="n">sum</span><span class="p">,</span> <span class="n">how</span><span class="o">=</span><span class="s">&#34;unlist&#34;</span><span class="p">)</span>   <span class="c1"># 输出结果为vector</span>
</span></span><span class="line"><span class="cl"><span class="n">a.aa</span> <span class="n">a.ab</span> <span class="n">b.ba</span> 
</span></span><span class="line"><span class="cl">  <span class="m">15</span>   <span class="m">40</span>   <span class="m">55</span> 
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="sapply">sapply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">sapply</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">FUN</span><span class="p">,</span> <span class="kc">...</span><span class="p">,</span> <span class="n">simplify</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">,</span> <span class="n">USE.NAMES</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
X：列表、向量、数据框
FUN：要使用的函数
simplify: 若FALSE，等价于lapply。否则，将lapply输出的list简化为vector或matrix
USE.NAMES: 如果X为字符串，TRUE设置字符串为数据名，FALSE不设置</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">lst</span> <span class="o">&lt;-</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">),</span> <span class="n">b</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">6</span><span class="o">:</span><span class="m">10</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">sapply</span><span class="p">(</span><span class="n">lst</span><span class="p">,</span> <span class="n">sum</span><span class="p">,</span> <span class="n">simplify</span> <span class="o">=</span> <span class="bp">F</span><span class="p">)</span>    <span class="c1"># 输出list</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">15</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">40</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">sapply</span><span class="p">(</span><span class="n">lst</span><span class="p">,</span> <span class="n">sum</span><span class="p">)</span>                  <span class="c1"># 输出vector</span>
</span></span><span class="line"><span class="cl"> <span class="n">a</span>  <span class="n">b</span> 
</span></span><span class="line"><span class="cl"><span class="m">15</span> <span class="m">40</span> 
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">sapply</span><span class="p">(</span><span class="n">lst</span><span class="p">,</span> <span class="n">fivenum</span><span class="p">)</span>              <span class="c1"># 输出matrix</span>
</span></span><span class="line"><span class="cl">     <span class="n">a</span>  <span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span> <span class="m">1</span>  <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span> <span class="m">2</span>  <span class="m">7</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span> <span class="m">3</span>  <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="n">[4</span><span class="p">,</span><span class="n">]</span> <span class="m">4</span>  <span class="m">9</span>
</span></span><span class="line"><span class="cl"><span class="n">[5</span><span class="p">,</span><span class="n">]</span> <span class="m">5</span> <span class="m">10</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">val</span> <span class="o">&lt;-</span> <span class="nf">head</span><span class="p">(</span><span class="kc">letters</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">val</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="s">&#34;a&#34;</span> <span class="s">&#34;b&#34;</span> <span class="s">&#34;c&#34;</span> <span class="s">&#34;d&#34;</span> <span class="s">&#34;e&#34;</span> <span class="s">&#34;f&#34;</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">sapply</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">paste</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">  <span class="n">a</span>   <span class="n">b</span>   <span class="n">c</span>   <span class="n">d</span>   <span class="n">e</span>   <span class="n">f</span> 
</span></span><span class="line"><span class="cl"><span class="s">&#34;a&#34;</span> <span class="s">&#34;b&#34;</span> <span class="s">&#34;c&#34;</span> <span class="s">&#34;d&#34;</span> <span class="s">&#34;e&#34;</span> <span class="s">&#34;f&#34;</span> 
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">sapply</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">paste</span><span class="p">,</span> <span class="n">USE.NAMES</span> <span class="o">=</span> <span class="bp">F</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="s">&#34;a&#34;</span> <span class="s">&#34;b&#34;</span> <span class="s">&#34;c&#34;</span> <span class="s">&#34;d&#34;</span> <span class="s">&#34;e&#34;</span> <span class="s">&#34;f&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="vapply">vapply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">vapply</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">FUN</span><span class="p">,</span> <span class="n">FUN.VALUE</span><span class="p">,</span> <span class="kc">...</span><span class="p">,</span> <span class="n">USE.NAMES</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
X：列表、数据框
FUN：要使用的函数
FUN.VALUE：定义返回值的行名row.names
USE.NAMES: 如果X为字符串，TRUE设置字符串为数据名，FALSE不设置</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">lst</span> <span class="o">&lt;-</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">),</span> <span class="n">b</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">6</span><span class="o">:</span><span class="m">10</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">res</span> <span class="o">&lt;-</span> <span class="nf">vapply</span><span class="p">(</span><span class="n">lst</span><span class="p">,</span> <span class="kr">function</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="nf">c</span><span class="p">(</span><span class="nf">min</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nf">max</span><span class="p">(</span><span class="n">x</span><span class="p">)),</span> <span class="nf">c</span><span class="p">(</span><span class="n">min.</span><span class="o">=</span><span class="m">0</span><span class="p">,</span> <span class="n">max.</span><span class="o">=</span><span class="m">0</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">res</span>
</span></span><span class="line"><span class="cl">     <span class="n">a</span>  <span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="n">min.</span> <span class="m">1</span>  <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="n">max.</span> <span class="m">5</span> <span class="m">10</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span> <span class="o">&lt;-</span> <span class="nf">data.frame</span><span class="p">(</span><span class="nf">cbind</span><span class="p">(</span><span class="n">x1</span><span class="o">=</span><span class="m">3</span><span class="p">,</span> <span class="n">x2</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">2</span><span class="o">:</span><span class="m">1</span><span class="p">,</span><span class="m">4</span><span class="o">:</span><span class="m">5</span><span class="p">)))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span>
</span></span><span class="line"><span class="cl">  <span class="n">x1</span> <span class="n">x2</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span>  <span class="m">3</span>  <span class="m">2</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span>  <span class="m">3</span>  <span class="m">1</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span>  <span class="m">3</span>  <span class="m">4</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span>  <span class="m">3</span>  <span class="m">5</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">vapply</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">cumsum</span><span class="p">,</span> <span class="n">FUN.VALUE</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s">&#39;a&#39;</span><span class="o">=</span><span class="m">0</span><span class="p">,</span><span class="s">&#39;b&#39;</span><span class="o">=</span><span class="m">0</span><span class="p">,</span><span class="s">&#39;c&#39;</span><span class="o">=</span><span class="m">0</span><span class="p">,</span><span class="s">&#39;d&#39;</span><span class="o">=</span><span class="m">0</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">  <span class="n">x1</span> <span class="n">x2</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span>  <span class="m">3</span>  <span class="m">2</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span>  <span class="m">6</span>  <span class="m">3</span>
</span></span><span class="line"><span class="cl"><span class="n">c</span>  <span class="m">9</span>  <span class="m">7</span>
</span></span><span class="line"><span class="cl"><span class="n">d</span> <span class="m">12</span> <span class="m">12</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="mapply">mapply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">mapply</span><span class="p">(</span><span class="n">FUN</span><span class="p">,</span> <span class="kc">...</span><span class="p">,</span> <span class="n">MoreArgs</span><span class="o">=</span><span class="kc">NULL</span><span class="p">,</span> <span class="n">SIMPLIFY</span><span class="o">=</span><span class="kc">TRUE</span><span class="p">,</span> <span class="n">USE.NAMES</span><span class="o">=</span><span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
FUN：要使用的函数
…: 接收多个数据(list、vector)
MoreArgs: FUN的参数列表
simplify: 若FALSE，输出list。否则，将输出的list简化为vector或matrix
USE.NAMES: 如果X为字符串，TRUE设置字符串为数据名，FALSE不设置</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">mapply</span><span class="p">(</span><span class="n">sum</span><span class="p">,</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="m">1</span><span class="p">,</span><span class="n">b</span><span class="o">=</span><span class="m">2</span><span class="p">,</span><span class="n">c</span><span class="o">=</span><span class="m">3</span><span class="p">),</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="m">10</span><span class="p">,</span><span class="n">b</span><span class="o">=</span><span class="m">20</span><span class="p">,</span><span class="n">d</span><span class="o">=</span><span class="m">30</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"> <span class="n">a</span>  <span class="n">b</span>  <span class="n">c</span> 
</span></span><span class="line"><span class="cl"><span class="m">11</span> <span class="m">22</span> <span class="m">33</span> 
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">a</span> <span class="o">&lt;-</span> <span class="m">1</span><span class="o">:</span><span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">b</span> <span class="o">&lt;-</span> <span class="m">5</span><span class="o">:</span><span class="m">-4</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">a</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span>  <span class="m">1</span>  <span class="m">2</span>  <span class="m">3</span>  <span class="m">4</span>  <span class="m">5</span>  <span class="m">6</span>  <span class="m">7</span>  <span class="m">8</span>  <span class="m">9</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">b</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span>  <span class="m">5</span>  <span class="m">4</span>  <span class="m">3</span>  <span class="m">2</span>  <span class="m">1</span>  <span class="m">0</span> <span class="m">-1</span> <span class="m">-2</span> <span class="m">-3</span> <span class="m">-4</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">mapply</span><span class="p">(</span><span class="n">max</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span>  <span class="m">5</span>  <span class="m">4</span>  <span class="m">3</span>  <span class="m">4</span>  <span class="m">5</span>  <span class="m">6</span>  <span class="m">7</span>  <span class="m">8</span>  <span class="m">9</span> <span class="m">10</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">mapply</span><span class="p">(</span><span class="kr">function</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="nf">c</span><span class="p">(</span><span class="n">x</span><span class="o">+</span><span class="n">y</span><span class="p">,</span> <span class="n">x^y</span><span class="p">,</span> <span class="n">x</span><span class="o">-</span><span class="n">y</span><span class="p">),</span> <span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">),</span> <span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">4</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">5</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">4</span>    <span class="m">6</span>    <span class="m">8</span>   <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">4</span>   <span class="m">27</span>  <span class="m">256</span> <span class="m">3125</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>    <span class="m">0</span>    <span class="m">0</span>    <span class="m">0</span>    <span class="m">0</span>    <span class="m">0</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="eapply">eapply</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">eapply</span><span class="p">(</span><span class="n">env</span><span class="p">,</span> <span class="n">FUN</span><span class="p">,</span> <span class="kc">...</span><span class="p">,</span> <span class="n">all.names</span> <span class="o">=</span> <span class="kc">FALSE</span><span class="p">,</span> <span class="n">USE.NAMES</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
env: 环境空间
FUN：要使用的函数
all.names: 匹配类型, ANY为所有类型
USE.NAMES: 如果X为字符串，TRUE设置字符串为数据名，FALSE不设置</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="c1"># 定义一个环境空间</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">env</span> <span class="o">&lt;-</span> <span class="nf">new.env</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="c1"># 向这个环境空间中存入3个变量</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">env</span><span class="o">$</span><span class="n">a</span> <span class="o">&lt;-</span> <span class="m">1</span><span class="o">:</span><span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">env</span><span class="o">$</span><span class="n">b</span> <span class="o">&lt;-</span> <span class="nf">exp</span><span class="p">(</span><span class="m">-3</span><span class="o">:</span><span class="m">3</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">env</span><span class="o">$</span><span class="n">logic</span> <span class="o">&lt;-</span> <span class="nf">c</span><span class="p">(</span><span class="kc">TRUE</span><span class="p">,</span> <span class="kc">FALSE</span><span class="p">,</span> <span class="kc">FALSE</span><span class="p">,</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">ls</span><span class="p">(</span><span class="n">env</span><span class="p">)</span>      <span class="c1"># 查看env空间中的变量</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="s">&#34;a&#34;</span>     <span class="s">&#34;b&#34;</span>     <span class="s">&#34;logic&#34;</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">ls.str</span><span class="p">(</span><span class="n">env</span><span class="p">)</span>  <span class="c1"># 查看env空间中的变量字符串结构</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="o">:</span>  <span class="n">int</span> <span class="n">[1</span><span class="o">:</span><span class="m">10</span><span class="n">]</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span> <span class="m">5</span> <span class="m">6</span> <span class="m">7</span> <span class="m">8</span> <span class="m">9</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="n">b</span> <span class="o">:</span>  <span class="n">num</span> <span class="n">[1</span><span class="o">:</span><span class="m">7</span><span class="n">]</span> <span class="m">0.0498</span> <span class="m">0.1353</span> <span class="m">0.3679</span> <span class="m">1</span> <span class="m">2.7183</span> <span class="kc">...</span>
</span></span><span class="line"><span class="cl"><span class="n">logic</span> <span class="o">:</span>  <span class="n">logi</span> <span class="n">[1</span><span class="o">:</span><span class="m">4</span><span class="n">]</span> <span class="kc">TRUE</span> <span class="kc">FALSE</span> <span class="kc">FALSE</span> <span class="kc">TRUE</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">eapply</span><span class="p">(</span><span class="n">env</span><span class="p">,</span> <span class="n">mean</span><span class="p">)</span>   <span class="c1"># 计算env环境空间中所有变量的均值</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">5.5</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">4.535125</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">logic</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">0.5</span>
</span></span></code></pre></td></tr></table>
</div>
</div><br>
<hr>
<h2 id="应用及拓展">应用及拓展</h2>
<h3 id="应用展示">应用展示</h3>
<p>原始数据为按年份year、地区loc和商品类别type进行统计的销售量。我们要制作两个销售总量的crosstable，一个以年份为行、地区为列，一个以年份为行，类别为列。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">df</span> <span class="o">&lt;-</span> <span class="nf">data.frame</span><span class="p">(</span><span class="n">year</span><span class="o">=</span><span class="nf">kronecker</span><span class="p">(</span><span class="m">2001</span><span class="o">:</span><span class="m">2003</span><span class="p">,</span> <span class="nf">rep</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="m">4</span><span class="p">)),</span> 
</span></span><span class="line"><span class="cl">                 <span class="n">loc</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s">&#39;beijing&#39;</span><span class="p">,</span><span class="s">&#39;beijing&#39;</span><span class="p">,</span><span class="s">&#39;shanghai&#39;</span><span class="p">,</span><span class="s">&#39;shanghai&#39;</span><span class="p">),</span> 
</span></span><span class="line"><span class="cl">                 <span class="n">type</span><span class="o">=</span><span class="nf">rep</span><span class="p">(</span><span class="nf">c</span><span class="p">(</span><span class="s">&#39;A&#39;</span><span class="p">,</span><span class="s">&#39;B&#39;</span><span class="p">),</span><span class="m">6</span><span class="p">),</span> <span class="n">sale</span><span class="o">=</span><span class="nf">rep</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">12</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">df</span>
</span></span><span class="line"><span class="cl">   <span class="n">year</span>      <span class="n">loc</span> <span class="n">type</span> <span class="n">sale</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span>  <span class="m">2001</span>  <span class="n">beijing</span>    <span class="n">A</span>    <span class="m">1</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span>  <span class="m">2001</span>  <span class="n">beijing</span>    <span class="n">B</span>    <span class="m">2</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span>  <span class="m">2001</span> <span class="n">shanghai</span>    <span class="n">A</span>    <span class="m">3</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span>  <span class="m">2001</span> <span class="n">shanghai</span>    <span class="n">B</span>    <span class="m">4</span>
</span></span><span class="line"><span class="cl"><span class="m">5</span>  <span class="m">2002</span>  <span class="n">beijing</span>    <span class="n">A</span>    <span class="m">5</span>
</span></span><span class="line"><span class="cl"><span class="m">6</span>  <span class="m">2002</span>  <span class="n">beijing</span>    <span class="n">B</span>    <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="m">7</span>  <span class="m">2002</span> <span class="n">shanghai</span>    <span class="n">A</span>    <span class="m">7</span>
</span></span><span class="line"><span class="cl"><span class="m">8</span>  <span class="m">2002</span> <span class="n">shanghai</span>    <span class="n">B</span>    <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="m">9</span>  <span class="m">2003</span>  <span class="n">beijing</span>    <span class="n">A</span>    <span class="m">9</span>
</span></span><span class="line"><span class="cl"><span class="m">10</span> <span class="m">2003</span>  <span class="n">beijing</span>    <span class="n">B</span>   <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="m">11</span> <span class="m">2003</span> <span class="n">shanghai</span>    <span class="n">A</span>   <span class="m">11</span>
</span></span><span class="line"><span class="cl"><span class="m">12</span> <span class="m">2003</span> <span class="n">shanghai</span>    <span class="n">B</span>   <span class="m">12</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">tapply</span><span class="p">(</span><span class="n">df</span><span class="o">$</span><span class="n">sale</span><span class="p">,</span> <span class="n">df[</span><span class="p">,</span><span class="nf">c</span><span class="p">(</span><span class="s">&#39;year&#39;</span><span class="p">,</span><span class="s">&#39;loc&#39;</span><span class="p">)</span><span class="n">]</span><span class="p">,</span> <span class="n">sum</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">      <span class="n">loc</span>
</span></span><span class="line"><span class="cl"><span class="n">year</span>   <span class="n">beijing</span> <span class="n">shanghai</span>
</span></span><span class="line"><span class="cl">  <span class="m">2001</span>       <span class="m">3</span>        <span class="m">7</span>
</span></span><span class="line"><span class="cl">  <span class="m">2002</span>      <span class="m">11</span>       <span class="m">15</span>
</span></span><span class="line"><span class="cl">  <span class="m">2003</span>      <span class="m">19</span>       <span class="m">23</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">tapply</span><span class="p">(</span><span class="n">df</span><span class="o">$</span><span class="n">sale</span><span class="p">,</span> <span class="n">df[</span><span class="p">,</span><span class="nf">c</span><span class="p">(</span><span class="s">&#39;year&#39;</span><span class="p">,</span><span class="s">&#39;type&#39;</span><span class="p">)</span><span class="n">]</span><span class="p">,</span> <span class="n">sum</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">      <span class="n">type</span>
</span></span><span class="line"><span class="cl"><span class="n">year</span>    <span class="n">A</span>  <span class="n">B</span>
</span></span><span class="line"><span class="cl">  <span class="m">2001</span>  <span class="m">4</span>  <span class="m">6</span>
</span></span><span class="line"><span class="cl">  <span class="m">2002</span> <span class="m">12</span> <span class="m">14</span>
</span></span><span class="line"><span class="cl">  <span class="m">2003</span> <span class="m">20</span> <span class="m">22</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">list1</span> <span class="o">&lt;-</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">,</span> <span class="n">b</span><span class="o">=</span><span class="nf">list</span><span class="p">(</span><span class="n">c</span><span class="o">=</span><span class="m">1</span><span class="o">:</span><span class="m">4</span><span class="p">,</span> <span class="n">d</span><span class="o">=</span><span class="m">5</span><span class="o">:</span><span class="m">9</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">list1</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span> <span class="m">5</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">c</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">d</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">5</span> <span class="m">6</span> <span class="m">7</span> <span class="m">8</span> <span class="m">9</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">list2</span> <span class="o">&lt;-</span> <span class="nf">list</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">,</span> <span class="n">b</span><span class="o">=</span><span class="nf">list</span><span class="p">(</span><span class="n">c</span><span class="o">=</span><span class="m">5</span><span class="o">:</span><span class="m">8</span><span class="p">,</span> <span class="n">d</span><span class="o">=</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">list2</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span> <span class="m">5</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">c</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">5</span> <span class="m">6</span> <span class="m">7</span> <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">d</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span> <span class="m">5</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="s">&#34;%+%&#34;</span> <span class="o">&lt;-</span> <span class="kr">function</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span> <span class="nf">mapply</span><span class="p">(</span><span class="s">&#34;+&#34;</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">mapply</span><span class="p">(</span><span class="s">&#34;%+%&#34;</span><span class="p">,</span> <span class="n">list1</span><span class="p">,</span> <span class="n">list2</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">a</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span>  <span class="m">2</span>  <span class="m">4</span>  <span class="m">6</span>  <span class="m">8</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">c</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span>  <span class="m">6</span>  <span class="m">8</span> <span class="m">10</span> <span class="m">12</span>
</span></span><span class="line"><span class="cl"><span class="o">$</span><span class="n">b</span><span class="o">$</span><span class="n">d</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span>  <span class="m">6</span>  <span class="m">8</span> <span class="m">10</span> <span class="m">12</span> <span class="m">14</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h3 id="相关函数">相关函数</h3>
<h4 id="by">by</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">by</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">INDICES</span><span class="p">,</span> <span class="n">FUN</span><span class="p">,</span> <span class="kc">...</span><span class="p">,</span> <span class="n">simplify</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
data: 数据框
INDICES：与数据框行数等长的用于分组的索引
FUN：要使用的函数</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span> <span class="o">&lt;-</span> <span class="nf">data.frame</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">5</span><span class="p">),</span> <span class="n">b</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">6</span><span class="o">:</span><span class="m">10</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span>
</span></span><span class="line"><span class="cl">  <span class="n">a</span>  <span class="n">b</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span> <span class="m">1</span>  <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span> <span class="m">2</span>  <span class="m">7</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span> <span class="m">3</span>  <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span> <span class="m">4</span>  <span class="m">9</span>
</span></span><span class="line"><span class="cl"><span class="m">5</span> <span class="m">5</span> <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">INDICES</span> <span class="o">&lt;-</span> <span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="m">1</span><span class="p">,</span><span class="m">2</span><span class="p">,</span><span class="m">2</span><span class="p">,</span><span class="m">2</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">by</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">INDICES</span><span class="p">,</span> <span class="n">colMeans</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">INDICES</span><span class="o">:</span> <span class="m">1</span>
</span></span><span class="line"><span class="cl">  <span class="n">a</span>   <span class="n">b</span> 
</span></span><span class="line"><span class="cl"><span class="m">1.5</span> <span class="m">6.5</span> 
</span></span><span class="line"><span class="cl"><span class="o">-------------------------------------------------------------------------------</span>
</span></span><span class="line"><span class="cl"><span class="n">INDICES</span><span class="o">:</span> <span class="m">2</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="n">b</span> 
</span></span><span class="line"><span class="cl"><span class="m">4</span> <span class="m">9</span> 
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">by</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">INDICES</span><span class="p">,</span> <span class="n">rowMeans</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">INDICES</span><span class="o">:</span> <span class="m">1</span>
</span></span><span class="line"><span class="cl">  <span class="m">1</span>   <span class="m">2</span> 
</span></span><span class="line"><span class="cl"><span class="m">3.5</span> <span class="m">4.5</span> 
</span></span><span class="line"><span class="cl"><span class="o">-------------------------------------------------------------------------------</span>
</span></span><span class="line"><span class="cl"><span class="n">INDICES</span><span class="o">:</span> <span class="m">2</span>
</span></span><span class="line"><span class="cl">  <span class="m">3</span>   <span class="m">4</span>   <span class="m">5</span> 
</span></span><span class="line"><span class="cl"><span class="m">5.5</span> <span class="m">6.5</span> <span class="m">7.5</span> 
</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="outer">outer</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">outer</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">FUN</span> <span class="o">=</span> <span class="s">&#34;*&#34;</span><span class="p">,</span> <span class="kc">...</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
X、Y: 向量、数组
FUN：当为空时即为外积运算，否则为将FUN代替外积运算符进行类似外积的运算操作</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">x</span> <span class="o">&lt;-</span> <span class="m">1</span><span class="o">:</span><span class="m">4</span><span class="p">;</span> <span class="n">y</span> <span class="o">&lt;-</span> <span class="m">2</span><span class="o">:</span><span class="m">4</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">x</span><span class="p">;</span> <span class="n">y</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">1</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span>
</span></span><span class="line"><span class="cl"><span class="n">[1]</span> <span class="m">2</span> <span class="m">3</span> <span class="m">4</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">outer</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">3</span>    <span class="m">4</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">4</span>    <span class="m">6</span>    <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>    <span class="m">6</span>    <span class="m">9</span>   <span class="m">12</span>
</span></span><span class="line"><span class="cl"><span class="n">[4</span><span class="p">,</span><span class="n">]</span>    <span class="m">8</span>   <span class="m">12</span>   <span class="m">16</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">month.abb</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span> <span class="s">&#34;Jan&#34;</span> <span class="s">&#34;Feb&#34;</span> <span class="s">&#34;Mar&#34;</span> <span class="s">&#34;Apr&#34;</span> <span class="s">&#34;May&#34;</span> <span class="s">&#34;Jun&#34;</span> <span class="s">&#34;Jul&#34;</span> <span class="s">&#34;Aug&#34;</span> <span class="s">&#34;Sep&#34;</span> <span class="s">&#34;Oct&#34;</span> <span class="s">&#34;Nov&#34;</span> <span class="s">&#34;Dec&#34;</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">outer</span><span class="p">(</span><span class="n">month.abb</span><span class="p">,</span> <span class="m">1999</span><span class="o">:</span><span class="m">2003</span><span class="p">,</span> <span class="n">FUN</span> <span class="o">=</span> <span class="s">&#34;paste&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">      <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span>       <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span>       <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>       <span class="n">[</span><span class="p">,</span><span class="m">4</span><span class="n">]</span>       <span class="n">[</span><span class="p">,</span><span class="m">5</span><span class="n">]</span>      
</span></span><span class="line"><span class="cl"> <span class="n">[1</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Jan 1999&#34;</span> <span class="s">&#34;Jan 2000&#34;</span> <span class="s">&#34;Jan 2001&#34;</span> <span class="s">&#34;Jan 2002&#34;</span> <span class="s">&#34;Jan 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[2</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Feb 1999&#34;</span> <span class="s">&#34;Feb 2000&#34;</span> <span class="s">&#34;Feb 2001&#34;</span> <span class="s">&#34;Feb 2002&#34;</span> <span class="s">&#34;Feb 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[3</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Mar 1999&#34;</span> <span class="s">&#34;Mar 2000&#34;</span> <span class="s">&#34;Mar 2001&#34;</span> <span class="s">&#34;Mar 2002&#34;</span> <span class="s">&#34;Mar 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[4</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Apr 1999&#34;</span> <span class="s">&#34;Apr 2000&#34;</span> <span class="s">&#34;Apr 2001&#34;</span> <span class="s">&#34;Apr 2002&#34;</span> <span class="s">&#34;Apr 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[5</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;May 1999&#34;</span> <span class="s">&#34;May 2000&#34;</span> <span class="s">&#34;May 2001&#34;</span> <span class="s">&#34;May 2002&#34;</span> <span class="s">&#34;May 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[6</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Jun 1999&#34;</span> <span class="s">&#34;Jun 2000&#34;</span> <span class="s">&#34;Jun 2001&#34;</span> <span class="s">&#34;Jun 2002&#34;</span> <span class="s">&#34;Jun 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[7</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Jul 1999&#34;</span> <span class="s">&#34;Jul 2000&#34;</span> <span class="s">&#34;Jul 2001&#34;</span> <span class="s">&#34;Jul 2002&#34;</span> <span class="s">&#34;Jul 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[8</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Aug 1999&#34;</span> <span class="s">&#34;Aug 2000&#34;</span> <span class="s">&#34;Aug 2001&#34;</span> <span class="s">&#34;Aug 2002&#34;</span> <span class="s">&#34;Aug 2003&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="n">[9</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Sep 1999&#34;</span> <span class="s">&#34;Sep 2000&#34;</span> <span class="s">&#34;Sep 2001&#34;</span> <span class="s">&#34;Sep 2002&#34;</span> <span class="s">&#34;Sep 2003&#34;</span>
</span></span><span class="line"><span class="cl"><span class="n">[10</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Oct 1999&#34;</span> <span class="s">&#34;Oct 2000&#34;</span> <span class="s">&#34;Oct 2001&#34;</span> <span class="s">&#34;Oct 2002&#34;</span> <span class="s">&#34;Oct 2003&#34;</span>
</span></span><span class="line"><span class="cl"><span class="n">[11</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Nov 1999&#34;</span> <span class="s">&#34;Nov 2000&#34;</span> <span class="s">&#34;Nov 2001&#34;</span> <span class="s">&#34;Nov 2002&#34;</span> <span class="s">&#34;Nov 2003&#34;</span>
</span></span><span class="line"><span class="cl"><span class="n">[12</span><span class="p">,</span><span class="n">]</span> <span class="s">&#34;Dec 1999&#34;</span> <span class="s">&#34;Dec 2000&#34;</span> <span class="s">&#34;Dec 2001&#34;</span> <span class="s">&#34;Dec 2002&#34;</span> <span class="s">&#34;Dec 2003&#34;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h4 id="sweep">sweep</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">sweep</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">MARGIN</span><span class="p">,</span> <span class="n">STATS</span><span class="p">,</span> <span class="n">FUN</span> <span class="o">=</span> <span class="s">&#34;-&#34;</span><span class="p">,</span> <span class="n">check.margin</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">,</span> <span class="kc">...</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
x: 数组、矩阵
MARGIN：运算维度，1表示行，2表示列，3即第三维度，以此类推
STATS：运算参数，类似于减法中的减数，除法中的除数
FUN：要使用的函数</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">mat</span> <span class="o">&lt;-</span> <span class="nf">matrix</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">9</span><span class="p">,</span> <span class="m">3</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">mat</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">4</span>    <span class="m">7</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">5</span>    <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>    <span class="m">3</span>    <span class="m">6</span>    <span class="m">9</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">sweep</span><span class="p">(</span><span class="n">mat</span><span class="p">,</span> <span class="m">1</span><span class="p">,</span> <span class="nf">c</span><span class="p">(</span><span class="m">1</span><span class="p">,</span><span class="m">4</span><span class="p">,</span><span class="m">7</span><span class="p">),</span> <span class="s">&#34;+&#34;</span><span class="p">)</span>  <span class="c1"># 第一行都加1，第二行都加4，第三行都加7</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">5</span>    <span class="m">8</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">6</span>    <span class="m">9</span>   <span class="m">12</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>   <span class="m">10</span>   <span class="m">13</span>   <span class="m">16</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">A</span> <span class="o">&lt;-</span> <span class="nf">array</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">24</span><span class="p">,</span> <span class="n">dim</span> <span class="o">=</span> <span class="m">4</span><span class="o">:</span><span class="m">2</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">median</span> <span class="o">&lt;-</span> <span class="nf">apply</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="m">1</span><span class="o">:</span><span class="m">2</span><span class="p">,</span> <span class="n">median</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">A</span>
</span></span><span class="line"><span class="cl"><span class="p">,</span> <span class="p">,</span> <span class="m">1</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">1</span>    <span class="m">5</span>    <span class="m">9</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">2</span>    <span class="m">6</span>   <span class="m">10</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>    <span class="m">3</span>    <span class="m">7</span>   <span class="m">11</span>
</span></span><span class="line"><span class="cl"><span class="n">[4</span><span class="p">,</span><span class="n">]</span>    <span class="m">4</span>    <span class="m">8</span>   <span class="m">12</span>
</span></span><span class="line"><span class="cl"><span class="p">,</span> <span class="p">,</span> <span class="m">2</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>   <span class="m">13</span>   <span class="m">17</span>   <span class="m">21</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>   <span class="m">14</span>   <span class="m">18</span>   <span class="m">22</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>   <span class="m">15</span>   <span class="m">19</span>   <span class="m">23</span>
</span></span><span class="line"><span class="cl"><span class="n">[4</span><span class="p">,</span><span class="n">]</span>   <span class="m">16</span>   <span class="m">20</span>   <span class="m">24</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">median</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">7</span>   <span class="m">11</span>   <span class="m">15</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">8</span>   <span class="m">12</span>   <span class="m">16</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>    <span class="m">9</span>   <span class="m">13</span>   <span class="m">17</span>
</span></span><span class="line"><span class="cl"><span class="n">[4</span><span class="p">,</span><span class="n">]</span>   <span class="m">10</span>   <span class="m">14</span>   <span class="m">18</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">sweep</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="m">1</span><span class="o">:</span><span class="m">2</span><span class="p">,</span> <span class="n">median</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">,</span> <span class="p">,</span> <span class="m">1</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>   <span class="m">-6</span>   <span class="m">-6</span>   <span class="m">-6</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>   <span class="m">-6</span>   <span class="m">-6</span>   <span class="m">-6</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>   <span class="m">-6</span>   <span class="m">-6</span>   <span class="m">-6</span>
</span></span><span class="line"><span class="cl"><span class="n">[4</span><span class="p">,</span><span class="n">]</span>   <span class="m">-6</span>   <span class="m">-6</span>   <span class="m">-6</span>
</span></span><span class="line"><span class="cl"><span class="p">,</span> <span class="p">,</span> <span class="m">2</span>
</span></span><span class="line"><span class="cl">     <span class="n">[</span><span class="p">,</span><span class="m">1</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">2</span><span class="n">]</span> <span class="n">[</span><span class="p">,</span><span class="m">3</span><span class="n">]</span>
</span></span><span class="line"><span class="cl"><span class="n">[1</span><span class="p">,</span><span class="n">]</span>    <span class="m">6</span>    <span class="m">6</span>    <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="n">[2</span><span class="p">,</span><span class="n">]</span>    <span class="m">6</span>    <span class="m">6</span>    <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="n">[3</span><span class="p">,</span><span class="n">]</span>    <span class="m">6</span>    <span class="m">6</span>    <span class="m">6</span>
</span></span><span class="line"><span class="cl"><span class="n">[4</span><span class="p">,</span><span class="n">]</span>    <span class="m">6</span>    <span class="m">6</span>    <span class="m">6</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h4 id="replicate">replicate</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">replicate</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">simplify</span> <span class="o">=</span> <span class="s">&#34;array&#34;</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
n: 调用的次数
expr：调用的表达式</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">game</span> <span class="o">&lt;-</span> <span class="kr">function</span><span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span>   <span class="n">n</span> <span class="o">&lt;-</span> <span class="nf">sample</span><span class="p">(</span><span class="m">1</span><span class="o">:</span><span class="m">6</span><span class="p">,</span><span class="m">2</span><span class="p">,</span><span class="n">replace</span><span class="o">=</span><span class="bp">T</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span>   <span class="kr">return</span><span class="p">(</span><span class="nf">sum</span><span class="p">(</span><span class="n">n</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">replicate</span><span class="p">(</span><span class="n">n</span><span class="o">=</span><span class="m">10</span><span class="p">,</span> <span class="nf">game</span><span class="p">())</span>
</span></span><span class="line"><span class="cl"> <span class="n">[1]</span>  <span class="m">6</span>  <span class="m">6</span>  <span class="m">6</span>  <span class="m">7</span>  <span class="m">7</span>  <span class="m">7</span> <span class="m">11</span>  <span class="m">8</span>  <span class="m">7</span>  <span class="m">9</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h4 id="aggregate">aggregate</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">aggregate</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">by</span><span class="p">,</span> <span class="n">FUN</span><span class="p">,</span> <span class="kc">...</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>参数列表：</strong>
x: 一种R数据结构，通常为数据框
by：分组索引，必须为list格式
FUN：要使用的函数</p>
</blockquote>
<p>{% label info@<b>举例阐释</b> %}</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span> <span class="o">&lt;-</span> <span class="nf">data.frame</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s">&#34;张三&#34;</span><span class="p">,</span><span class="s">&#34;李四&#34;</span><span class="p">,</span><span class="s">&#34;王五&#34;</span><span class="p">,</span><span class="s">&#34;赵六&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span>              <span class="n">sex</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s">&#34;M&#34;</span><span class="p">,</span><span class="s">&#34;M&#34;</span><span class="p">,</span><span class="s">&#34;F&#34;</span><span class="p">,</span><span class="s">&#34;F&#34;</span><span class="p">),</span> <span class="n">age</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">20</span><span class="p">,</span><span class="m">40</span><span class="p">,</span><span class="m">22</span><span class="p">,</span><span class="m">30</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="o">+</span>              <span class="n">height</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="m">166</span><span class="p">,</span><span class="m">170</span><span class="p">,</span><span class="m">150</span><span class="p">,</span><span class="m">155</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="n">data</span>
</span></span><span class="line"><span class="cl">  <span class="n">name</span> <span class="n">sex</span> <span class="n">age</span> <span class="n">height</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span> 张三   <span class="n">M</span>  <span class="m">20</span>    <span class="m">166</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span> 李四   <span class="n">M</span>  <span class="m">40</span>    <span class="m">170</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span> 王五   <span class="bp">F</span>  <span class="m">22</span>    <span class="m">150</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span> 赵六   <span class="bp">F</span>  <span class="m">30</span>    <span class="m">155</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="o">&gt;</span> <span class="nf">aggregate</span><span class="p">(</span><span class="n">data[</span><span class="p">,</span><span class="m">3</span><span class="o">:</span><span class="m">4</span><span class="n">]</span><span class="p">,</span> <span class="n">by</span><span class="o">=</span><span class="nf">list</span><span class="p">(</span><span class="n">data</span><span class="o">$</span><span class="n">sex</span><span class="p">),</span> <span class="n">mean</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">  <span class="n">Group.1</span> <span class="n">age</span> <span class="n">height</span>
</span></span><span class="line"><span class="cl"><span class="m">1</span>       <span class="bp">F</span>  <span class="m">26</span>  <span class="m">152.5</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span>       <span class="n">M</span>  <span class="m">30</span>  <span class="m">168.0</span>
</span></span></code></pre></td></tr></table>
</div>
</div><br>
<hr>
<h2 id="致谢">致谢</h2>
<blockquote>
<h3 id="参考文章">参考文章</h3>
<ul>
<li><a href="https://www.cnblogs.com/aquastone/p/r-apply.html" target="_blank" rel="noopener noreffer">R语言apply函数族笔记</a></li>
<li><a href="http://blog.fens.me/r-apply/" target="_blank" rel="noopener noreffer">掌握R语言中的apply函数族</a></li>
<li><a href="https://feng.li/" target="_blank" rel="noopener noreffer">Dr. Feng Li-Personal Site</a></li>
</ul>
</blockquote>
]]></content:encoded></item></channel></rss>