This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/arrow-cookbook.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new 417d039  publish built book
417d039 is described below

commit 417d039923c0fdb98d242daa0789db55df5ee1c0
Author: GitHub Actions <[email protected]>
AuthorDate: Fri Aug 6 21:47:06 2021 +0000

    publish built book
---
 r/creating-arrow-objects.html   |  56 +++++++++------
 r/index.html                    |   1 -
 r/manipulating-data.html        |  40 ++++++++---
 r/reading-and-writing-data.html | 154 +++++++++++++++++++++++++++-------------
 r/search_index.json             |   2 +-
 5 files changed, 174 insertions(+), 79 deletions(-)

diff --git a/r/creating-arrow-objects.html b/r/creating-arrow-objects.html
index 3a526e8..29bf233 100644
--- a/r/creating-arrow-objects.html
+++ b/r/creating-arrow-objects.html
@@ -51,7 +51,6 @@
 <script src="libs/accessible-code-block-0.0.1/empty-anchor.js"></script>
 <link href="libs/anchor-sections-1.0.1/anchor-sections.css" rel="stylesheet" />
 <script src="libs/anchor-sections-1.0.1/anchor-sections.js"></script>
-<link href="libs/testrmd-0.0.1.9000/testrmd.css" rel="stylesheet" />
 
 
 <style type="text/css">
@@ -190,63 +189,77 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 <div id="manually-create-a-table-from-an-r-object" class="section level3">
 <h3><span class="header-section-number">3.1.1</span> Manually create a Table 
from an R object</h3>
 <p>You may want to convert an existing data frame in R to an Arrow Table 
object.</p>
-<div class="sourceCode" id="cb34"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb34-1"><a 
href="creating-arrow-objects.html#cb34-1"></a><span class="co"># Create an 
example data frame</span></span>
-<span id="cb34-2"><a href="creating-arrow-objects.html#cb34-2"></a>my_tibble 
&lt;-<span class="st"> </span>tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span>, 
<span class="dv">97</span>, <span class="dv">99</span>))</span>
-<span id="cb34-3"><a href="creating-arrow-objects.html#cb34-3"></a><span 
class="co"># Convert to Arrow Table</span></span>
-<span id="cb34-4"><a href="creating-arrow-objects.html#cb34-4"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(my_tibble)</span>
-<span id="cb34-5"><a href="creating-arrow-objects.html#cb34-5"></a><span 
class="co"># View table</span></span>
-<span id="cb34-6"><a 
href="creating-arrow-objects.html#cb34-6"></a>my_table</span></code></pre></div>
+<div class="sourceCode" id="cb51"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb51-1"><a 
href="creating-arrow-objects.html#cb51-1"></a><span class="co"># Create an 
example data frame</span></span>
+<span id="cb51-2"><a href="creating-arrow-objects.html#cb51-2"></a>my_tibble 
&lt;-<span class="st"> </span>tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span>, 
<span class="dv">97</span>, <span class="dv">99</span>))</span>
+<span id="cb51-3"><a href="creating-arrow-objects.html#cb51-3"></a><span 
class="co"># Convert to Arrow Table</span></span>
+<span id="cb51-4"><a href="creating-arrow-objects.html#cb51-4"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(my_tibble)</span>
+<span id="cb51-5"><a href="creating-arrow-objects.html#cb51-5"></a><span 
class="co"># View table</span></span>
+<span id="cb51-6"><a 
href="creating-arrow-objects.html#cb51-6"></a>my_table</span></code></pre></div>
 <pre><code>## Table
 ## 3 rows x 2 columns
 ## $group &lt;string&gt;
 ## $score &lt;double&gt;</code></pre>
+<div class="sourceCode" id="cb53"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb53-1"><a 
href="creating-arrow-objects.html#cb53-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;table_create works as 
expected&quot;</span>, {</span>
+<span id="cb53-2"><a href="creating-arrow-objects.html#cb53-2"></a>  <span 
class="kw">expect_s3_class</span>(my_table, <span 
class="st">&quot;Table&quot;</span>)</span>
+<span id="cb53-3"><a href="creating-arrow-objects.html#cb53-3"></a>  <span 
class="kw">expect_identical</span>(dplyr<span class="op">::</span><span 
class="kw">collect</span>(my_table), my_tibble)</span>
+<span id="cb53-4"><a 
href="creating-arrow-objects.html#cb53-4"></a>})</span></code></pre></div>
 <div id="view-the-contents-of-an-arrow-table" class="section level4">
 <h4><span class="header-section-number">3.1.1.1</span> View the contents of an 
Arrow Table</h4>
 <p>You can view the contents of an Arrow Table using 
<code>dplyr::collect()</code></p>
-<div class="sourceCode" id="cb36"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb36-1"><a 
href="creating-arrow-objects.html#cb36-1"></a><span class="co"># View 
Table</span></span>
-<span id="cb36-2"><a href="creating-arrow-objects.html#cb36-2"></a>dplyr<span 
class="op">::</span><span 
class="kw">collect</span>(my_table)</span></code></pre></div>
+<div class="sourceCode" id="cb54"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb54-1"><a 
href="creating-arrow-objects.html#cb54-1"></a><span class="co"># View 
Table</span></span>
+<span id="cb54-2"><a href="creating-arrow-objects.html#cb54-2"></a>dplyr<span 
class="op">::</span><span 
class="kw">collect</span>(my_table)</span></code></pre></div>
 <pre><code>## # A tibble: 3 × 2
 ##   group score
 ##   &lt;chr&gt; &lt;dbl&gt;
 ## 1 A        99
 ## 2 B        97
 ## 3 C        99</code></pre>
+<div class="sourceCode" id="cb56"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb56-1"><a 
href="creating-arrow-objects.html#cb56-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;table_collect works as 
expected&quot;</span>, {</span>
+<span id="cb56-2"><a href="creating-arrow-objects.html#cb56-2"></a>  <span 
class="kw">expect_identical</span>(dplyr<span class="op">::</span><span 
class="kw">collect</span>(my_table), my_tibble)</span>
+<span id="cb56-3"><a 
href="creating-arrow-objects.html#cb56-3"></a>})</span></code></pre></div>
 </div>
 </div>
 <div id="manually-create-a-recordbatch" class="section level3">
 <h3><span class="header-section-number">3.1.2</span> Manually create a 
RecordBatch</h3>
 <p>You may want to convert an existing data frame in R to an Arrow RecordBatch 
object.</p>
-<div class="sourceCode" id="cb38"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb38-1"><a 
href="creating-arrow-objects.html#cb38-1"></a><span class="co"># Create an 
example data frame</span></span>
-<span id="cb38-2"><a href="creating-arrow-objects.html#cb38-2"></a>my_tibble 
&lt;-<span class="st"> </span>tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span>, 
<span class="dv">97</span>, <span class="dv">99</span>))</span>
-<span id="cb38-3"><a href="creating-arrow-objects.html#cb38-3"></a><span 
class="co"># Convert to Arrow RecordBatch</span></span>
-<span id="cb38-4"><a 
href="creating-arrow-objects.html#cb38-4"></a>my_record_batch &lt;-<span 
class="st"> </span><span class="kw">record_batch</span>(my_tibble)</span>
-<span id="cb38-5"><a href="creating-arrow-objects.html#cb38-5"></a><span 
class="co"># View RecordBatch</span></span>
-<span id="cb38-6"><a 
href="creating-arrow-objects.html#cb38-6"></a>my_record_batch</span></code></pre></div>
+<div class="sourceCode" id="cb57"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb57-1"><a 
href="creating-arrow-objects.html#cb57-1"></a><span class="co"># Create an 
example data frame</span></span>
+<span id="cb57-2"><a href="creating-arrow-objects.html#cb57-2"></a>my_tibble 
&lt;-<span class="st"> </span>tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span>, 
<span class="dv">97</span>, <span class="dv">99</span>))</span>
+<span id="cb57-3"><a href="creating-arrow-objects.html#cb57-3"></a><span 
class="co"># Convert to Arrow RecordBatch</span></span>
+<span id="cb57-4"><a 
href="creating-arrow-objects.html#cb57-4"></a>my_record_batch &lt;-<span 
class="st"> </span><span class="kw">record_batch</span>(my_tibble)</span>
+<span id="cb57-5"><a href="creating-arrow-objects.html#cb57-5"></a><span 
class="co"># View RecordBatch</span></span>
+<span id="cb57-6"><a 
href="creating-arrow-objects.html#cb57-6"></a>my_record_batch</span></code></pre></div>
 <pre><code>## RecordBatch
 ## 3 rows x 2 columns
 ## $group &lt;string&gt;
 ## $score &lt;double&gt;</code></pre>
+<div class="sourceCode" id="cb59"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb59-1"><a 
href="creating-arrow-objects.html#cb59-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;record_batch_create works as 
expected&quot;</span>, {</span>
+<span id="cb59-2"><a href="creating-arrow-objects.html#cb59-2"></a>  <span 
class="kw">expect_s3_class</span>(my_record_batch, <span 
class="st">&quot;RecordBatch&quot;</span>)</span>
+<span id="cb59-3"><a href="creating-arrow-objects.html#cb59-3"></a>  <span 
class="kw">expect_identical</span>(dplyr<span class="op">::</span><span 
class="kw">collect</span>(my_record_batch), my_tibble)</span>
+<span id="cb59-4"><a 
href="creating-arrow-objects.html#cb59-4"></a>})</span></code></pre></div>
 <div id="view-the-contents-of-a-recordbatch" class="section level4">
 <h4><span class="header-section-number">3.1.2.1</span> View the contents of a 
RecordBatch</h4>
 <p>You can view the contents of a RecordBatch using 
<code>dplyr::collect()</code></p>
-<div class="sourceCode" id="cb40"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb40-1"><a 
href="creating-arrow-objects.html#cb40-1"></a><span class="co"># View 
RecordBatch</span></span>
-<span id="cb40-2"><a href="creating-arrow-objects.html#cb40-2"></a>dplyr<span 
class="op">::</span><span 
class="kw">collect</span>(my_record_batch)</span></code></pre></div>
+<div class="sourceCode" id="cb60"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb60-1"><a 
href="creating-arrow-objects.html#cb60-1"></a><span class="co"># View 
RecordBatch</span></span>
+<span id="cb60-2"><a href="creating-arrow-objects.html#cb60-2"></a>dplyr<span 
class="op">::</span><span 
class="kw">collect</span>(my_record_batch)</span></code></pre></div>
 <pre><code>## # A tibble: 3 × 2
 ##   group score
 ##   &lt;chr&gt; &lt;dbl&gt;
 ## 1 A        99
 ## 2 B        97
 ## 3 C        99</code></pre>
+<div class="sourceCode" id="cb62"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb62-1"><a 
href="creating-arrow-objects.html#cb62-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;rb_collect works as 
expected&quot;</span>, {</span>
+<span id="cb62-2"><a href="creating-arrow-objects.html#cb62-2"></a>  <span 
class="kw">expect_identical</span>(dplyr<span class="op">::</span><span 
class="kw">collect</span>(my_record_batch), my_tibble)</span>
+<span id="cb62-3"><a 
href="creating-arrow-objects.html#cb62-3"></a>})</span></code></pre></div>
 </div>
 </div>
 </div>
 <div id="storing-categorical-data-in-arrow" class="section level2">
 <h2><span class="header-section-number">3.2</span> Storing Categorical Data in 
Arrow</h2>
 <p>An Arrow Dictionary object is similar to a factor in R, in that it allows 
for efficient storage of categorical data by allowing you to map between 
indices and values, reducing the amount of storage. If you have an R data frame 
containing factors, converting it to an Arrow object will automatically encode 
that column as a dictionary.</p>
-<div class="sourceCode" id="cb42"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb42-1"><a 
href="creating-arrow-objects.html#cb42-1"></a><span 
class="kw">class</span>(iris<span 
class="op">$</span>Species)</span></code></pre></div>
+<div class="sourceCode" id="cb63"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb63-1"><a 
href="creating-arrow-objects.html#cb63-1"></a><span 
class="kw">class</span>(iris<span 
class="op">$</span>Species)</span></code></pre></div>
 <pre><code>## [1] &quot;factor&quot;</code></pre>
-<div class="sourceCode" id="cb44"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb44-1"><a 
href="creating-arrow-objects.html#cb44-1"></a>iris_rb &lt;-<span class="st"> 
</span><span class="kw">record_batch</span>(iris)</span>
-<span id="cb44-2"><a 
href="creating-arrow-objects.html#cb44-2"></a>iris_rb</span></code></pre></div>
+<div class="sourceCode" id="cb65"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb65-1"><a 
href="creating-arrow-objects.html#cb65-1"></a>iris_rb &lt;-<span class="st"> 
</span><span class="kw">record_batch</span>(iris)</span>
+<span id="cb65-2"><a 
href="creating-arrow-objects.html#cb65-2"></a>iris_rb</span></code></pre></div>
 <pre><code>## RecordBatch
 ## 150 rows x 5 columns
 ## $Sepal.Length &lt;double&gt;
@@ -256,6 +269,9 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 ## $Species &lt;dictionary&lt;values=string, indices=int8&gt;&gt;
 ## 
 ## See $metadata for additional Schema metadata</code></pre>
+<div class="sourceCode" id="cb67"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb67-1"><a 
href="creating-arrow-objects.html#cb67-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;dictionary works as 
expected&quot;</span>, {</span>
+<span id="cb67-2"><a href="creating-arrow-objects.html#cb67-2"></a>  <span 
class="kw">expect_s3_class</span>(iris_rb<span class="op">$</span>Species, 
<span class="st">&quot;DictionaryArray&quot;</span>)</span>
+<span id="cb67-3"><a 
href="creating-arrow-objects.html#cb67-3"></a>})</span></code></pre></div>
 
 </div>
 </div>
diff --git a/r/index.html b/r/index.html
index 77e9507..0b5278b 100644
--- a/r/index.html
+++ b/r/index.html
@@ -51,7 +51,6 @@
 <script src="libs/accessible-code-block-0.0.1/empty-anchor.js"></script>
 <link href="libs/anchor-sections-1.0.1/anchor-sections.css" rel="stylesheet" />
 <script src="libs/anchor-sections-1.0.1/anchor-sections.js"></script>
-<link href="libs/testrmd-0.0.1.9000/testrmd.css" rel="stylesheet" />
 
 
 <style type="text/css">
diff --git a/r/manipulating-data.html b/r/manipulating-data.html
index b6142ef..b9f0ade 100644
--- a/r/manipulating-data.html
+++ b/r/manipulating-data.html
@@ -51,7 +51,6 @@
 <script src="libs/accessible-code-block-0.0.1/empty-anchor.js"></script>
 <link href="libs/anchor-sections-1.0.1/anchor-sections.css" rel="stylesheet" />
 <script src="libs/anchor-sections-1.0.1/anchor-sections.js"></script>
-<link href="libs/testrmd-0.0.1.9000/testrmd.css" rel="stylesheet" />
 
 
 <style type="text/css">
@@ -188,20 +187,26 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 <div id="computing-meanminmax-etc-value-of-an-array" class="section level2">
 <h2><span class="header-section-number">4.1</span> Computing Mean/Min/Max, etc 
value of an Array</h2>
 <p>Many base R generic functions such as <code>mean()</code>, 
<code>min()</code>, and <code>max()</code> have been mapped to their Arrow 
equivalents, and so can be called on Arrow Array objects in the same way. They 
will return Arrow objects themselves.</p>
-<div class="sourceCode" id="cb46"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb46-1"><a 
href="manipulating-data.html#cb46-1"></a>my_values &lt;-<span class="st"> 
</span>Array<span class="op">$</span><span class="kw">create</span>(<span 
class="kw">c</span>(<span class="dv">1</span><span class="op">:</span><span 
class="dv">5</span>, <span class="ot">NA</span>))</span>
-<span id="cb46-2"><a href="manipulating-data.html#cb46-2"></a><span 
class="kw">mean</span>(my_values, <span class="dt">na.rm =</span> <span 
class="ot">TRUE</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb68"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb68-1"><a 
href="manipulating-data.html#cb68-1"></a>my_values &lt;-<span class="st"> 
</span>Array<span class="op">$</span><span class="kw">create</span>(<span 
class="kw">c</span>(<span class="dv">1</span><span class="op">:</span><span 
class="dv">5</span>, <span class="ot">NA</span>))</span>
+<span id="cb68-2"><a href="manipulating-data.html#cb68-2"></a><span 
class="kw">mean</span>(my_values, <span class="dt">na.rm =</span> <span 
class="ot">TRUE</span>)</span></code></pre></div>
 <pre><code>## Scalar
 ## 3</code></pre>
+<div class="sourceCode" id="cb70"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb70-1"><a 
href="manipulating-data.html#cb70-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;array_mean_na works as 
expected&quot;</span>, {</span>
+<span id="cb70-2"><a href="manipulating-data.html#cb70-2"></a>  <span 
class="kw">expect_equal</span>(<span class="kw">mean</span>(my_values, <span 
class="dt">na.rm =</span> <span class="ot">TRUE</span>), Scalar<span 
class="op">$</span><span class="kw">create</span>(<span 
class="dv">3</span>))</span>
+<span id="cb70-3"><a 
href="manipulating-data.html#cb70-3"></a>})</span></code></pre></div>
 <p>If you want to use an R function which does not have an Arrow mapping, you 
can use <code>as.vector()</code> to convert Arrow objects to base R vectors.</p>
-<div class="sourceCode" id="cb48"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb48-1"><a 
href="manipulating-data.html#cb48-1"></a><span class="kw">fivenum</span>(<span 
class="kw">as.vector</span>(my_values))</span></code></pre></div>
+<div class="sourceCode" id="cb71"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb71-1"><a 
href="manipulating-data.html#cb71-1"></a><span class="kw">fivenum</span>(<span 
class="kw">as.vector</span>(my_values))</span></code></pre></div>
 <pre><code>## [1] 1 2 3 4 5</code></pre>
+<div class="sourceCode" id="cb73"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb73-1"><a 
href="manipulating-data.html#cb73-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;fivenum works as 
expected&quot;</span>, {</span>
+<span id="cb73-2"><a href="manipulating-data.html#cb73-2"></a>  <span 
class="kw">expect_equal</span>(<span class="kw">fivenum</span>(<span 
class="kw">as.vector</span>(my_values)), <span class="dv">1</span><span 
class="op">:</span><span class="dv">5</span>)</span>
+<span id="cb73-3"><a 
href="manipulating-data.html#cb73-3"></a>})</span></code></pre></div>
 </div>
 <div id="counting-occurrences-of-elements-in-an-array" class="section level2">
 <h2><span class="header-section-number">4.2</span> Counting occurrences of 
elements in an Array</h2>
 <p>Some functions in the Arrow R package do not have base R equivalents. In 
other cases, the base R equivalents are not generic functions so they cannot be 
called directly on Arrow Array objects.</p>
 <p>For example, the <code>value_count()</code> function in the Arrow R package 
is loosely equivalent to the base R function <code>table()</code>, which is not 
a generic function. To count the elements in an R vector, you can use 
<code>table()</code>; to count the elements in an Arrow Array, you can use 
<code>value_count()</code>.</p>
-<div class="sourceCode" id="cb50"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb50-1"><a 
href="manipulating-data.html#cb50-1"></a>repeated_vals &lt;-<span class="st"> 
</span>Array<span class="op">$</span><span class="kw">create</span>(<span 
class="kw">c</span>(<span class="dv">1</span>, <span class="dv">1</span>, <span 
class="dv">2</span>, <span class="dv">3</span>, <span class="dv">3</span>, 
<span class="dv">3</span>, <span class="dv">3</span>, <span class="dv">3</spa 
[...]
-<span id="cb50-2"><a href="manipulating-data.html#cb50-2"></a><span 
class="kw">value_counts</span>(repeated_vals)</span></code></pre></div>
+<div class="sourceCode" id="cb74"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb74-1"><a 
href="manipulating-data.html#cb74-1"></a>repeated_vals &lt;-<span class="st"> 
</span>Array<span class="op">$</span><span class="kw">create</span>(<span 
class="kw">c</span>(<span class="dv">1</span>, <span class="dv">1</span>, <span 
class="dv">2</span>, <span class="dv">3</span>, <span class="dv">3</span>, 
<span class="dv">3</span>, <span class="dv">3</span>, <span class="dv">3</spa 
[...]
+<span id="cb74-2"><a href="manipulating-data.html#cb74-2"></a><span 
class="kw">value_counts</span>(repeated_vals)</span></code></pre></div>
 <pre><code>## StructArray
 ## &lt;struct&lt;values: double, counts: int64&gt;&gt;
 ## -- is_valid: all not null
@@ -217,12 +222,21 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 ##     1,
 ##     5
 ##   ]</code></pre>
+<div class="sourceCode" id="cb76"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb76-1"><a 
href="manipulating-data.html#cb76-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;value_counts works as 
expected&quot;</span>, {</span>
+<span id="cb76-2"><a href="manipulating-data.html#cb76-2"></a>  <span 
class="kw">expect_equal</span>(</span>
+<span id="cb76-3"><a href="manipulating-data.html#cb76-3"></a>    <span 
class="kw">as.vector</span>(<span 
class="kw">value_counts</span>(repeated_vals)),</span>
+<span id="cb76-4"><a href="manipulating-data.html#cb76-4"></a>    <span 
class="kw">tibble</span>(</span>
+<span id="cb76-5"><a href="manipulating-data.html#cb76-5"></a>      <span 
class="dt">values =</span> <span class="kw">as.numeric</span>(<span 
class="kw">names</span>(<span class="kw">table</span>(<span 
class="kw">as.vector</span>(repeated_vals)))),</span>
+<span id="cb76-6"><a href="manipulating-data.html#cb76-6"></a>      <span 
class="dt">counts =</span> <span class="kw">as.vector</span>(<span 
class="kw">table</span>(<span 
class="kw">as.vector</span>(repeated_vals)))</span>
+<span id="cb76-7"><a href="manipulating-data.html#cb76-7"></a>    )</span>
+<span id="cb76-8"><a href="manipulating-data.html#cb76-8"></a>  )</span>
+<span id="cb76-9"><a 
href="manipulating-data.html#cb76-9"></a>})</span></code></pre></div>
 </div>
 <div id="applying-arithmetic-functions-to-arrays." class="section level2">
 <h2><span class="header-section-number">4.3</span> Applying arithmetic 
functions to Arrays.</h2>
 <p>You can use the various arithmetic operators on Array objects.</p>
-<div class="sourceCode" id="cb52"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb52-1"><a 
href="manipulating-data.html#cb52-1"></a>num_array &lt;-<span class="st"> 
</span>Array<span class="op">$</span><span class="kw">create</span>(<span 
class="dv">1</span><span class="op">:</span><span class="dv">10</span>)</span>
-<span id="cb52-2"><a href="manipulating-data.html#cb52-2"></a>num_array <span 
class="op">+</span><span class="st"> </span><span 
class="dv">10</span></span></code></pre></div>
+<div class="sourceCode" id="cb77"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb77-1"><a 
href="manipulating-data.html#cb77-1"></a>num_array &lt;-<span class="st"> 
</span>Array<span class="op">$</span><span class="kw">create</span>(<span 
class="dv">1</span><span class="op">:</span><span class="dv">10</span>)</span>
+<span id="cb77-2"><a href="manipulating-data.html#cb77-2"></a>num_array <span 
class="op">+</span><span class="st"> </span><span 
class="dv">10</span></span></code></pre></div>
 <pre><code>## Array
 ## &lt;double&gt;
 ## [
@@ -237,8 +251,12 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 ##   19,
 ##   20
 ## ]</code></pre>
+<div class="sourceCode" id="cb79"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb79-1"><a 
href="manipulating-data.html#cb79-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;add_array works as 
expected&quot;</span>, {</span>
+<span id="cb79-2"><a href="manipulating-data.html#cb79-2"></a>  <span 
class="co"># need to specify expected array as 1:10 + 10 instead of 11:20 so is 
double not integer</span></span>
+<span id="cb79-3"><a href="manipulating-data.html#cb79-3"></a>  <span 
class="kw">expect_equal</span>(num_array <span class="op">+</span><span 
class="st"> </span><span class="dv">10</span>, Array<span 
class="op">$</span><span class="kw">create</span>(<span 
class="dv">1</span><span class="op">:</span><span class="dv">10</span> <span 
class="op">+</span><span class="st"> </span><span class="dv">10</span>))</span>
+<span id="cb79-4"><a 
href="manipulating-data.html#cb79-4"></a>})</span></code></pre></div>
 <p>You will get the same result if you pass in the value you’re adding as an 
Arrow object.</p>
-<div class="sourceCode" id="cb54"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb54-1"><a 
href="manipulating-data.html#cb54-1"></a>num_array <span 
class="op">+</span><span class="st"> </span>Scalar<span 
class="op">$</span><span class="kw">create</span>(<span 
class="dv">10</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb80"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb80-1"><a 
href="manipulating-data.html#cb80-1"></a>num_array <span 
class="op">+</span><span class="st"> </span>Scalar<span 
class="op">$</span><span class="kw">create</span>(<span 
class="dv">10</span>)</span></code></pre></div>
 <pre><code>## Array
 ## &lt;double&gt;
 ## [
@@ -253,6 +271,10 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 ##   19,
 ##   20
 ## ]</code></pre>
+<div class="sourceCode" id="cb82"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb82-1"><a 
href="manipulating-data.html#cb82-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;add_array_scalar works as 
expected&quot;</span>, {</span>
+<span id="cb82-2"><a href="manipulating-data.html#cb82-2"></a>  <span 
class="co"># need to specify expected array as 1:10 + 10 instead of 11:20 so is 
double not integer</span></span>
+<span id="cb82-3"><a href="manipulating-data.html#cb82-3"></a>  <span 
class="kw">expect_equal</span>(num_array <span class="op">+</span><span 
class="st"> </span>Scalar<span class="op">$</span><span 
class="kw">create</span>(<span class="dv">10</span>), Array<span 
class="op">$</span><span class="kw">create</span>(<span 
class="dv">1</span><span class="op">:</span><span class="dv">10</span> <span 
class="op">+</span><span class="st"> </span><span class="dv">10</span>))</span>
+<span id="cb82-4"><a 
href="manipulating-data.html#cb82-4"></a>})</span></code></pre></div>
 
 </div>
 </div>
diff --git a/r/reading-and-writing-data.html b/r/reading-and-writing-data.html
index b37e927..2349d86 100644
--- a/r/reading-and-writing-data.html
+++ b/r/reading-and-writing-data.html
@@ -51,7 +51,6 @@
 <script src="libs/accessible-code-block-0.0.1/empty-anchor.js"></script>
 <link href="libs/anchor-sections-1.0.1/anchor-sections.css" rel="stylesheet" />
 <script src="libs/anchor-sections-1.0.1/anchor-sections.js"></script>
-<link href="libs/testrmd-0.0.1.9000/testrmd.css" rel="stylesheet" />
 
 
 <style type="text/css">
@@ -207,12 +206,15 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 ## $Day &lt;int32&gt;
 ## 
 ## See $metadata for additional Schema metadata</code></pre>
+<div class="sourceCode" id="cb3"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb3-1"><a 
href="reading-and-writing-data.html#cb3-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;table_create_from_tibble 
chunk works as expected&quot;</span>, {</span>
+<span id="cb3-2"><a href="reading-and-writing-data.html#cb3-2"></a>  <span 
class="kw">expect_s3_class</span>(air_table, <span 
class="st">&quot;Table&quot;</span>)</span>
+<span id="cb3-3"><a 
href="reading-and-writing-data.html#cb3-3"></a>})</span></code></pre></div>
 </div>
 <div id="converting-data-from-an-arrow-table-to-a-tibble" class="section 
level2">
 <h2><span class="header-section-number">2.2</span> Converting data from an 
Arrow Table to a tibble</h2>
 <p>You may want to convert an Arrow Table to a tibble to view the data or work 
with it in your usual analytics pipeline. You can use either 
<code>dplyr::collect()</code> or <code>as.data.frame()</code> to do this.</p>
-<div class="sourceCode" id="cb3"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb3-1"><a 
href="reading-and-writing-data.html#cb3-1"></a>air_tibble &lt;-<span 
class="st"> </span>dplyr<span class="op">::</span><span 
class="kw">collect</span>(air_table)</span>
-<span id="cb3-2"><a 
href="reading-and-writing-data.html#cb3-2"></a>air_tibble</span></code></pre></div>
+<div class="sourceCode" id="cb4"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb4-1"><a 
href="reading-and-writing-data.html#cb4-1"></a>air_tibble &lt;-<span 
class="st"> </span>dplyr<span class="op">::</span><span 
class="kw">collect</span>(air_table)</span>
+<span id="cb4-2"><a 
href="reading-and-writing-data.html#cb4-2"></a>air_tibble</span></code></pre></div>
 <pre><code>##     Ozone Solar.R Wind Temp Month Day
 ## 1      41     190  7.4   67     5   1
 ## 2      36     118  8.0   72     5   2
@@ -367,64 +369,82 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 ## 151    14     191 14.3   75     9  28
 ## 152    18     131  8.0   76     9  29
 ## 153    20     223 11.5   68     9  30</code></pre>
+<div class="sourceCode" id="cb6"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb6-1"><a 
href="reading-and-writing-data.html#cb6-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;collect_table chunk works as 
expected&quot;</span>, {</span>
+<span id="cb6-2"><a href="reading-and-writing-data.html#cb6-2"></a>  <span 
class="kw">expect_identical</span>(air_tibble, airquality) </span>
+<span id="cb6-3"><a 
href="reading-and-writing-data.html#cb6-3"></a>})</span></code></pre></div>
 </div>
 <div id="reading-and-writing-parquet-files" class="section level2">
 <h2><span class="header-section-number">2.3</span> Reading and Writing Parquet 
Files</h2>
 <div id="writing-a-parquet-file" class="section level3">
 <h3><span class="header-section-number">2.3.1</span> Writing a Parquet 
file</h3>
 <p>You can write Parquet files to disk using 
<code>arrow::write_parquet()</code>.</p>
-<div class="sourceCode" id="cb5"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb5-1"><a 
href="reading-and-writing-data.html#cb5-1"></a><span class="co"># Create 
table</span></span>
-<span id="cb5-2"><a href="reading-and-writing-data.html#cb5-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span>, 
 [...]
-<span id="cb5-3"><a href="reading-and-writing-data.html#cb5-3"></a><span 
class="co"># Write to Parquet</span></span>
-<span id="cb5-4"><a href="reading-and-writing-data.html#cb5-4"></a><span 
class="kw">write_parquet</span>(my_table, <span 
class="st">&quot;my_table.parquet&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb7"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb7-1"><a 
href="reading-and-writing-data.html#cb7-1"></a><span class="co"># Create 
table</span></span>
+<span id="cb7-2"><a href="reading-and-writing-data.html#cb7-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span>, 
 [...]
+<span id="cb7-3"><a href="reading-and-writing-data.html#cb7-3"></a><span 
class="co"># Write to Parquet</span></span>
+<span id="cb7-4"><a href="reading-and-writing-data.html#cb7-4"></a><span 
class="kw">write_parquet</span>(my_table, <span 
class="st">&quot;my_table.parquet&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb8"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb8-1"><a 
href="reading-and-writing-data.html#cb8-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;write_parquet chunk works as 
expected&quot;</span>, {</span>
+<span id="cb8-2"><a href="reading-and-writing-data.html#cb8-2"></a>  <span 
class="kw">expect_true</span>(<span class="kw">file.exists</span>(<span 
class="st">&quot;my_table.parquet&quot;</span>))</span>
+<span id="cb8-3"><a 
href="reading-and-writing-data.html#cb8-3"></a>})</span></code></pre></div>
 </div>
 <div id="reading-a-parquet-file" class="section level3">
 <h3><span class="header-section-number">2.3.2</span> Reading a Parquet 
file</h3>
 <p>Given a Parquet file, it can be read back in by using 
<code>arrow::read_parquet()</code>.</p>
-<div class="sourceCode" id="cb6"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb6-1"><a 
href="reading-and-writing-data.html#cb6-1"></a>parquet_tbl &lt;-<span 
class="st"> </span><span class="kw">read_parquet</span>(<span 
class="st">&quot;my_table.parquet&quot;</span>)</span>
-<span id="cb6-2"><a href="reading-and-writing-data.html#cb6-2"></a><span 
class="kw">head</span>(parquet_tbl)</span></code></pre></div>
+<div class="sourceCode" id="cb9"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb9-1"><a 
href="reading-and-writing-data.html#cb9-1"></a>parquet_tbl &lt;-<span 
class="st"> </span><span class="kw">read_parquet</span>(<span 
class="st">&quot;my_table.parquet&quot;</span>)</span>
+<span id="cb9-2"><a href="reading-and-writing-data.html#cb9-2"></a><span 
class="kw">head</span>(parquet_tbl)</span></code></pre></div>
 <pre><code>## # A tibble: 3 × 2
 ##   group score
 ##   &lt;chr&gt; &lt;dbl&gt;
 ## 1 A        99
 ## 2 B        97
 ## 3 C        99</code></pre>
+<div class="sourceCode" id="cb11"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb11-1"><a 
href="reading-and-writing-data.html#cb11-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;read_parquet works as 
expected&quot;</span>, {</span>
+<span id="cb11-2"><a href="reading-and-writing-data.html#cb11-2"></a>  <span 
class="kw">expect_equivalent</span>(dplyr<span class="op">::</span><span 
class="kw">collect</span>(parquet_tbl), tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span [...]
+<span id="cb11-3"><a 
href="reading-and-writing-data.html#cb11-3"></a>})</span></code></pre></div>
 <p>As the argument <code>as_data_frame</code> was left set to its default 
value of <code>TRUE</code>, the file was read in as a <code>data.frame</code> 
object.</p>
-<div class="sourceCode" id="cb8"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb8-1"><a 
href="reading-and-writing-data.html#cb8-1"></a><span 
class="kw">class</span>(parquet_tbl)</span></code></pre></div>
+<div class="sourceCode" id="cb12"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb12-1"><a 
href="reading-and-writing-data.html#cb12-1"></a><span 
class="kw">class</span>(parquet_tbl)</span></code></pre></div>
 <pre><code>## [1] &quot;tbl_df&quot;     &quot;tbl&quot;        
&quot;data.frame&quot;</code></pre>
+<div class="sourceCode" id="cb14"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb14-1"><a 
href="reading-and-writing-data.html#cb14-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;read_parquet_2 works as 
expected&quot;</span>, {</span>
+<span id="cb14-2"><a href="reading-and-writing-data.html#cb14-2"></a>  <span 
class="kw">expect_s3_class</span>(parquet_tbl, <span 
class="st">&quot;data.frame&quot;</span>)</span>
+<span id="cb14-3"><a 
href="reading-and-writing-data.html#cb14-3"></a>})</span></code></pre></div>
 <p>If you set <code>as_data_frame</code> to <code>FALSE</code>, the file will 
be read in as an Arrow Table.</p>
-<div class="sourceCode" id="cb10"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb10-1"><a 
href="reading-and-writing-data.html#cb10-1"></a>my_table_arrow_table &lt;-<span 
class="st"> </span><span class="kw">read_parquet</span>(<span 
class="st">&quot;my_table.parquet&quot;</span>, <span class="dt">as_data_frame 
=</span> <span class="ot">FALSE</span>)</span>
-<span id="cb10-2"><a href="reading-and-writing-data.html#cb10-2"></a><span 
class="kw">head</span>(my_table_arrow_table)</span></code></pre></div>
+<div class="sourceCode" id="cb15"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb15-1"><a 
href="reading-and-writing-data.html#cb15-1"></a>my_table_arrow_table &lt;-<span 
class="st"> </span><span class="kw">read_parquet</span>(<span 
class="st">&quot;my_table.parquet&quot;</span>, <span class="dt">as_data_frame 
=</span> <span class="ot">FALSE</span>)</span>
+<span id="cb15-2"><a href="reading-and-writing-data.html#cb15-2"></a><span 
class="kw">head</span>(my_table_arrow_table)</span></code></pre></div>
 <pre><code>## Table
 ## 3 rows x 2 columns
 ## $group &lt;string&gt;
 ## $score &lt;double&gt;</code></pre>
-<div class="sourceCode" id="cb12"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb12-1"><a 
href="reading-and-writing-data.html#cb12-1"></a><span 
class="kw">class</span>(my_table_arrow_table)</span></code></pre></div>
+<div class="sourceCode" id="cb17"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb17-1"><a 
href="reading-and-writing-data.html#cb17-1"></a><span 
class="kw">class</span>(my_table_arrow_table)</span></code></pre></div>
 <pre><code>## [1] &quot;Table&quot;        &quot;ArrowTabular&quot; 
&quot;ArrowObject&quot;  &quot;R6&quot;</code></pre>
+<div class="sourceCode" id="cb19"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb19-1"><a 
href="reading-and-writing-data.html#cb19-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;read_parquet_table_class 
works as expected&quot;</span>, {</span>
+<span id="cb19-2"><a href="reading-and-writing-data.html#cb19-2"></a>  <span 
class="kw">expect_s3_class</span>(my_table_arrow_table, <span 
class="st">&quot;Table&quot;</span>)</span>
+<span id="cb19-3"><a 
href="reading-and-writing-data.html#cb19-3"></a>})</span></code></pre></div>
 </div>
 <div id="how-to-read-a-parquet-file-from-s3" class="section level3">
 <h3><span class="header-section-number">2.3.3</span> How to read a Parquet 
file from S3</h3>
 <p>You can open a Parquet file saved on S3 by calling 
<code>read_parquet()</code> and passing the relevant URI as the 
<code>file</code> argument.</p>
-<div class="sourceCode" id="cb14"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb14-1"><a 
href="reading-and-writing-data.html#cb14-1"></a>df &lt;-<span class="st"> 
</span><span class="kw">read_parquet</span>(<span class="dt">file =</span> 
<span 
class="st">&quot;s3://ursa-labs-taxi-data/2019/06/data.parquet&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb20"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb20-1"><a 
href="reading-and-writing-data.html#cb20-1"></a>df &lt;-<span class="st"> 
</span><span class="kw">read_parquet</span>(<span class="dt">file =</span> 
<span 
class="st">&quot;s3://ursa-labs-taxi-data/2019/06/data.parquet&quot;</span>)</span></code></pre></div>
 <p>For more in-depth instructions, including how to work with S3 buckets which 
require authentication, you can find a guide to reading and writing to/from S3 
buckets here: <a href="https://arrow.apache.org/docs/r/articles/fs.html"; 
class="uri">https://arrow.apache.org/docs/r/articles/fs.html</a>.</p>
 </div>
 <div id="how-to-filter-columns-while-reading-a-parquet-file" class="section 
level3">
 <h3><span class="header-section-number">2.3.4</span> How to filter columns 
while reading a Parquet file</h3>
 <p>When reading in a Parquet file, you can specify which columns to read in 
via the <code>col_select</code> argument.</p>
-<div class="sourceCode" id="cb15"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb15-1"><a 
href="reading-and-writing-data.html#cb15-1"></a><span class="co"># Create table 
to read back in </span></span>
-<span id="cb15-2"><a href="reading-and-writing-data.html#cb15-2"></a>dist_time 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">distance =</span> <span 
class="kw">c</span>(<span class="fl">12.2</span>, <span class="fl">15.7</span>, 
<span class="fl">14.2</span>), <span class="dt">time =</span> <span 
class="kw">c</span>(<span class="dv">43</span>, <span class="dv">44</s [...]
-<span id="cb15-3"><a href="reading-and-writing-data.html#cb15-3"></a><span 
class="co"># Write to Parquet</span></span>
-<span id="cb15-4"><a href="reading-and-writing-data.html#cb15-4"></a><span 
class="kw">write_parquet</span>(dist_time, <span 
class="st">&quot;dist_time.parquet&quot;</span>)</span>
-<span id="cb15-5"><a href="reading-and-writing-data.html#cb15-5"></a></span>
-<span id="cb15-6"><a href="reading-and-writing-data.html#cb15-6"></a><span 
class="co"># Read in only the &quot;time&quot; column</span></span>
-<span id="cb15-7"><a href="reading-and-writing-data.html#cb15-7"></a>time_only 
&lt;-<span class="st"> </span><span class="kw">read_parquet</span>(<span 
class="st">&quot;dist_time.parquet&quot;</span>, <span class="dt">col_select 
=</span> <span class="st">&quot;time&quot;</span>)</span>
-<span id="cb15-8"><a href="reading-and-writing-data.html#cb15-8"></a><span 
class="kw">head</span>(time_only)</span></code></pre></div>
+<div class="sourceCode" id="cb21"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb21-1"><a 
href="reading-and-writing-data.html#cb21-1"></a><span class="co"># Create table 
to read back in </span></span>
+<span id="cb21-2"><a href="reading-and-writing-data.html#cb21-2"></a>dist_time 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">distance =</span> <span 
class="kw">c</span>(<span class="fl">12.2</span>, <span class="fl">15.7</span>, 
<span class="fl">14.2</span>), <span class="dt">time =</span> <span 
class="kw">c</span>(<span class="dv">43</span>, <span class="dv">44</s [...]
+<span id="cb21-3"><a href="reading-and-writing-data.html#cb21-3"></a><span 
class="co"># Write to Parquet</span></span>
+<span id="cb21-4"><a href="reading-and-writing-data.html#cb21-4"></a><span 
class="kw">write_parquet</span>(dist_time, <span 
class="st">&quot;dist_time.parquet&quot;</span>)</span>
+<span id="cb21-5"><a href="reading-and-writing-data.html#cb21-5"></a></span>
+<span id="cb21-6"><a href="reading-and-writing-data.html#cb21-6"></a><span 
class="co"># Read in only the &quot;time&quot; column</span></span>
+<span id="cb21-7"><a href="reading-and-writing-data.html#cb21-7"></a>time_only 
&lt;-<span class="st"> </span><span class="kw">read_parquet</span>(<span 
class="st">&quot;dist_time.parquet&quot;</span>, <span class="dt">col_select 
=</span> <span class="st">&quot;time&quot;</span>)</span>
+<span id="cb21-8"><a href="reading-and-writing-data.html#cb21-8"></a><span 
class="kw">head</span>(time_only)</span></code></pre></div>
 <pre><code>## # A tibble: 3 × 1
 ##    time
 ##   &lt;dbl&gt;
 ## 1    43
 ## 2    44
 ## 3    40</code></pre>
+<div class="sourceCode" id="cb23"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb23-1"><a 
href="reading-and-writing-data.html#cb23-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;read_parquet_filter works as 
expected&quot;</span>, {</span>
+<span id="cb23-2"><a href="reading-and-writing-data.html#cb23-2"></a>  <span 
class="kw">expect_identical</span>(time_only, tibble<span 
class="op">::</span><span class="kw">tibble</span>(<span class="dt">time 
=</span> <span class="kw">c</span>(<span class="dv">43</span>, <span 
class="dv">44</span>, <span class="dv">40</span>)))</span>
+<span id="cb23-3"><a 
href="reading-and-writing-data.html#cb23-3"></a>})</span></code></pre></div>
 </div>
 </div>
 <div id="reading-and-writing-feather-files" class="section level2">
@@ -432,72 +452,106 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 <div id="write-an-ipcfeather-v2-file" class="section level3">
 <h3><span class="header-section-number">2.4.1</span> Write an IPC/Feather V2 
file</h3>
 <p>The Arrow IPC file format is identical to the Feather version 2 format. If 
you call <code>write_arrow()</code>, you will get a warning telling you to use 
<code>write_feather()</code> instead.</p>
-<div class="sourceCode" id="cb17"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb17-1"><a 
href="reading-and-writing-data.html#cb17-1"></a><span class="co"># Create 
table</span></span>
-<span id="cb17-2"><a href="reading-and-writing-data.html#cb17-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span> 
[...]
-<span id="cb17-3"><a href="reading-and-writing-data.html#cb17-3"></a><span 
class="kw">write_arrow</span>(my_table, <span 
class="st">&quot;my_table.arrow&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb24"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb24-1"><a 
href="reading-and-writing-data.html#cb24-1"></a><span class="co"># Create 
table</span></span>
+<span id="cb24-2"><a href="reading-and-writing-data.html#cb24-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span> 
[...]
+<span id="cb24-3"><a href="reading-and-writing-data.html#cb24-3"></a><span 
class="kw">write_arrow</span>(my_table, <span 
class="st">&quot;my_table.arrow&quot;</span>)</span></code></pre></div>
 <pre><code>## Warning: Use &#39;write_ipc_stream&#39; or 
&#39;write_feather&#39; instead.</code></pre>
+<div class="sourceCode" id="cb26"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb26-1"><a 
href="reading-and-writing-data.html#cb26-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;write_arrow chunk works as 
expected&quot;</span>, {</span>
+<span id="cb26-2"><a href="reading-and-writing-data.html#cb26-2"></a>  <span 
class="kw">expect_true</span>(<span class="kw">file.exists</span>(<span 
class="st">&quot;my_table.arrow&quot;</span>))</span>
+<span id="cb26-3"><a href="reading-and-writing-data.html#cb26-3"></a>  <span 
class="kw">expect_warning</span>(</span>
+<span id="cb26-4"><a href="reading-and-writing-data.html#cb26-4"></a>    <span 
class="kw">write_arrow</span>(iris, <span 
class="st">&quot;my_table.arrow&quot;</span>),</span>
+<span id="cb26-5"><a href="reading-and-writing-data.html#cb26-5"></a>    <span 
class="dt">regexp =</span> <span class="st">&quot;Use 
&#39;write_ipc_stream&#39; or &#39;write_feather&#39; 
instead.&quot;</span></span>
+<span id="cb26-6"><a href="reading-and-writing-data.html#cb26-6"></a>  )</span>
+<span id="cb26-7"><a 
href="reading-and-writing-data.html#cb26-7"></a>})</span></code></pre></div>
 <p>Instead, you can use <code>write_feather()</code>.</p>
-<div class="sourceCode" id="cb19"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb19-1"><a 
href="reading-and-writing-data.html#cb19-1"></a>my_table &lt;-<span class="st"> 
</span>Table<span class="op">$</span><span class="kw">create</span>(tibble<span 
class="op">::</span><span class="kw">tibble</span>(<span class="dt">group 
=</span> <span class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span> [...]
-<span id="cb19-2"><a href="reading-and-writing-data.html#cb19-2"></a><span 
class="kw">write_feather</span>(my_table, <span 
class="st">&quot;my_table.arrow&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb27"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb27-1"><a 
href="reading-and-writing-data.html#cb27-1"></a>my_table &lt;-<span class="st"> 
</span>Table<span class="op">$</span><span class="kw">create</span>(tibble<span 
class="op">::</span><span class="kw">tibble</span>(<span class="dt">group 
=</span> <span class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span> [...]
+<span id="cb27-2"><a href="reading-and-writing-data.html#cb27-2"></a><span 
class="kw">write_feather</span>(my_table, <span 
class="st">&quot;my_table.arrow&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb28"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb28-1"><a 
href="reading-and-writing-data.html#cb28-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;write_feather chunk works as 
expected&quot;</span>, {</span>
+<span id="cb28-2"><a href="reading-and-writing-data.html#cb28-2"></a>  <span 
class="kw">expect_true</span>(<span class="kw">file.exists</span>(<span 
class="st">&quot;my_table.arrow&quot;</span>))</span>
+<span id="cb28-3"><a 
href="reading-and-writing-data.html#cb28-3"></a>})</span></code></pre></div>
 </div>
 <div id="write-a-feather-version-1-file" class="section level3">
 <h3><span class="header-section-number">2.4.2</span> Write a Feather (version 
1) file</h3>
 <p>For legacy support, you can write data in the original Feather format by 
setting the <code>version</code> parameter to <code>1</code>.</p>
-<div class="sourceCode" id="cb20"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb20-1"><a 
href="reading-and-writing-data.html#cb20-1"></a><span class="co"># Create 
table</span></span>
-<span id="cb20-2"><a href="reading-and-writing-data.html#cb20-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span> 
[...]
-<span id="cb20-3"><a href="reading-and-writing-data.html#cb20-3"></a><span 
class="co"># Write to Feather format V1</span></span>
-<span id="cb20-4"><a href="reading-and-writing-data.html#cb20-4"></a><span 
class="kw">write_feather</span>(mtcars, <span 
class="st">&quot;my_table.feather&quot;</span>, <span class="dt">version 
=</span> <span class="dv">1</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb29"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb29-1"><a 
href="reading-and-writing-data.html#cb29-1"></a><span class="co"># Create 
table</span></span>
+<span id="cb29-2"><a href="reading-and-writing-data.html#cb29-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span> 
[...]
+<span id="cb29-3"><a href="reading-and-writing-data.html#cb29-3"></a><span 
class="co"># Write to Feather format V1</span></span>
+<span id="cb29-4"><a href="reading-and-writing-data.html#cb29-4"></a><span 
class="kw">write_feather</span>(mtcars, <span 
class="st">&quot;my_table.feather&quot;</span>, <span class="dt">version 
=</span> <span class="dv">1</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb30"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb30-1"><a 
href="reading-and-writing-data.html#cb30-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;write_feather1 chunk works 
as expected&quot;</span>, {</span>
+<span id="cb30-2"><a href="reading-and-writing-data.html#cb30-2"></a>  <span 
class="kw">expect_true</span>(<span class="kw">file.exists</span>(<span 
class="st">&quot;my_table.feather&quot;</span>))</span>
+<span id="cb30-3"><a 
href="reading-and-writing-data.html#cb30-3"></a>})</span></code></pre></div>
 </div>
 <div id="read-a-feather-file" class="section level3">
 <h3><span class="header-section-number">2.4.3</span> Read a Feather file</h3>
 <p>You can read Feather files in via <code>read_feather()</code>.</p>
-<div class="sourceCode" id="cb21"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb21-1"><a 
href="reading-and-writing-data.html#cb21-1"></a>my_feather_tbl &lt;-<span 
class="st"> </span><span class="kw">read_feather</span>(<span 
class="st">&quot;my_table.arrow&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb31"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb31-1"><a 
href="reading-and-writing-data.html#cb31-1"></a>my_feather_tbl &lt;-<span 
class="st"> </span><span class="kw">read_feather</span>(<span 
class="st">&quot;my_table.arrow&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb32"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb32-1"><a 
href="reading-and-writing-data.html#cb32-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;read_feather chunk works as 
expected&quot;</span>, {</span>
+<span id="cb32-2"><a href="reading-and-writing-data.html#cb32-2"></a>  <span 
class="kw">expect_identical</span>(dplyr<span class="op">::</span><span 
class="kw">collect</span>(my_feather_tbl), tibble<span 
class="op">::</span><span class="kw">tibble</span>(<span class="dt">group 
=</span> <span class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<sp [...]
+<span id="cb32-3"><a 
href="reading-and-writing-data.html#cb32-3"></a>})</span></code></pre></div>
 </div>
 </div>
 <div id="reading-and-writing-streaming-ipc-files" class="section level2">
 <h2><span class="header-section-number">2.5</span> Reading and Writing 
Streaming IPC Files</h2>
 <p>You can write to the IPC stream format using 
<code>write_ipc_stream()</code>.</p>
-<div class="sourceCode" id="cb22"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb22-1"><a 
href="reading-and-writing-data.html#cb22-1"></a><span class="co"># Create 
table</span></span>
-<span id="cb22-2"><a href="reading-and-writing-data.html#cb22-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span> 
[...]
-<span id="cb22-3"><a href="reading-and-writing-data.html#cb22-3"></a><span 
class="co"># Write to IPC stream format</span></span>
-<span id="cb22-4"><a href="reading-and-writing-data.html#cb22-4"></a><span 
class="kw">write_ipc_stream</span>(my_table, <span 
class="st">&quot;my_table.arrows&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb33"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb33-1"><a 
href="reading-and-writing-data.html#cb33-1"></a><span class="co"># Create 
table</span></span>
+<span id="cb33-2"><a href="reading-and-writing-data.html#cb33-2"></a>my_table 
&lt;-<span class="st"> </span>Table<span class="op">$</span><span 
class="kw">create</span>(tibble<span class="op">::</span><span 
class="kw">tibble</span>(<span class="dt">group =</span> <span 
class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span> 
[...]
+<span id="cb33-3"><a href="reading-and-writing-data.html#cb33-3"></a><span 
class="co"># Write to IPC stream format</span></span>
+<span id="cb33-4"><a href="reading-and-writing-data.html#cb33-4"></a><span 
class="kw">write_ipc_stream</span>(my_table, <span 
class="st">&quot;my_table.arrows&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb34"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb34-1"><a 
href="reading-and-writing-data.html#cb34-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;write_ipc_stream chunk works 
as expected&quot;</span>, {</span>
+<span id="cb34-2"><a href="reading-and-writing-data.html#cb34-2"></a>  <span 
class="kw">expect_true</span>(<span class="kw">file.exists</span>(<span 
class="st">&quot;my_table.arrows&quot;</span>))</span>
+<span id="cb34-3"><a 
href="reading-and-writing-data.html#cb34-3"></a>})</span></code></pre></div>
 <p>You can read from IPC stream format using 
<code>read_ipc_stream()</code>.</p>
-<div class="sourceCode" id="cb23"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb23-1"><a 
href="reading-and-writing-data.html#cb23-1"></a>my_ipc_stream &lt;-<span 
class="st"> </span>arrow<span class="op">::</span><span 
class="kw">read_ipc_stream</span>(<span 
class="st">&quot;my_table.arrows&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb35"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb35-1"><a 
href="reading-and-writing-data.html#cb35-1"></a>my_ipc_stream &lt;-<span 
class="st"> </span>arrow<span class="op">::</span><span 
class="kw">read_ipc_stream</span>(<span 
class="st">&quot;my_table.arrows&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb36"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb36-1"><a 
href="reading-and-writing-data.html#cb36-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;read_ipc_stream chunk works 
as expected&quot;</span>, {</span>
+<span id="cb36-2"><a href="reading-and-writing-data.html#cb36-2"></a>  <span 
class="kw">expect_equal</span>(my_ipc_stream, tibble<span 
class="op">::</span><span class="kw">tibble</span>(<span class="dt">group 
=</span> <span class="kw">c</span>(<span class="st">&quot;A&quot;</span>, <span 
class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>), <span 
class="dt">score =</span> <span class="kw">c</span>(<span class="dv">99</span>, 
<span class="dv">97</span>, <span class="dv" [...]
+<span id="cb36-3"><a 
href="reading-and-writing-data.html#cb36-3"></a>})</span></code></pre></div>
 </div>
 <div id="reading-and-writing-csv-files" class="section level2">
 <h2><span class="header-section-number">2.6</span> Reading and Writing CSV 
files</h2>
 <p>You can use <code>write_csv_arrow()</code> to save an Arrow Table to disk 
as a CSV.</p>
-<div class="sourceCode" id="cb24"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb24-1"><a 
href="reading-and-writing-data.html#cb24-1"></a><span 
class="kw">write_csv_arrow</span>(cars, <span 
class="st">&quot;cars.csv&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb37"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb37-1"><a 
href="reading-and-writing-data.html#cb37-1"></a><span 
class="kw">write_csv_arrow</span>(cars, <span 
class="st">&quot;cars.csv&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb38"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb38-1"><a 
href="reading-and-writing-data.html#cb38-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;write_csv_arrow chunk works 
as expected&quot;</span>, {</span>
+<span id="cb38-2"><a href="reading-and-writing-data.html#cb38-2"></a>  <span 
class="kw">expect_true</span>(<span class="kw">file.exists</span>(<span 
class="st">&quot;cars.csv&quot;</span>))</span>
+<span id="cb38-3"><a 
href="reading-and-writing-data.html#cb38-3"></a>})</span></code></pre></div>
 <p>You can use <code>read_csv_arrow()</code> to read in a CSV file as an Arrow 
Table.</p>
-<div class="sourceCode" id="cb25"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb25-1"><a 
href="reading-and-writing-data.html#cb25-1"></a>my_csv &lt;-<span class="st"> 
</span><span class="kw">read_csv_arrow</span>(<span 
class="st">&quot;cars.csv&quot;</span>, <span class="dt">as_data_frame =</span> 
<span class="ot">FALSE</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb39"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb39-1"><a 
href="reading-and-writing-data.html#cb39-1"></a>my_csv &lt;-<span class="st"> 
</span><span class="kw">read_csv_arrow</span>(<span 
class="st">&quot;cars.csv&quot;</span>, <span class="dt">as_data_frame =</span> 
<span class="ot">FALSE</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb40"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb40-1"><a 
href="reading-and-writing-data.html#cb40-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;read_csv_arrow chunk works 
as expected&quot;</span>, {</span>
+<span id="cb40-2"><a href="reading-and-writing-data.html#cb40-2"></a>  <span 
class="kw">expect_equivalent</span>(dplyr<span class="op">::</span><span 
class="kw">collect</span>(my_csv), cars)</span>
+<span id="cb40-3"><a 
href="reading-and-writing-data.html#cb40-3"></a>})</span></code></pre></div>
 </div>
 <div id="reading-and-writing-partitioned-data" class="section level2">
 <h2><span class="header-section-number">2.7</span> Reading and Writing 
Partitioned Data</h2>
 <div id="writing-partitioned-data" class="section level3">
 <h3><span class="header-section-number">2.7.1</span> Writing Partitioned 
Data</h3>
 <p>You can use <code>write_dataset()</code> to save data to disk in partitions 
based on columns in the data.</p>
-<div class="sourceCode" id="cb26"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb26-1"><a 
href="reading-and-writing-data.html#cb26-1"></a><span 
class="kw">write_dataset</span>(airquality, <span 
class="st">&quot;airquality_partitioned&quot;</span>, <span 
class="dt">partitioning =</span> <span class="kw">c</span>(<span 
class="st">&quot;Month&quot;</span>, <span 
class="st">&quot;Day&quot;</span>))</span>
-<span id="cb26-2"><a href="reading-and-writing-data.html#cb26-2"></a><span 
class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb41"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb41-1"><a 
href="reading-and-writing-data.html#cb41-1"></a><span 
class="kw">write_dataset</span>(airquality, <span 
class="st">&quot;airquality_partitioned&quot;</span>, <span 
class="dt">partitioning =</span> <span class="kw">c</span>(<span 
class="st">&quot;Month&quot;</span>, <span 
class="st">&quot;Day&quot;</span>))</span>
+<span id="cb41-2"><a href="reading-and-writing-data.html#cb41-2"></a><span 
class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned&quot;</span>)</span></code></pre></div>
 <pre><code>## [1] &quot;Month=5&quot; &quot;Month=6&quot; &quot;Month=7&quot; 
&quot;Month=8&quot; &quot;Month=9&quot;</code></pre>
+<div class="sourceCode" id="cb43"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb43-1"><a 
href="reading-and-writing-data.html#cb43-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;write_dataset chunk works as 
expected&quot;</span>, {</span>
+<span id="cb43-2"><a href="reading-and-writing-data.html#cb43-2"></a>  <span 
class="co"># Partition by month</span></span>
+<span id="cb43-3"><a href="reading-and-writing-data.html#cb43-3"></a>  <span 
class="kw">expect_identical</span>(<span class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned&quot;</span>), <span 
class="kw">c</span>(<span class="st">&quot;Month=5&quot;</span>, <span 
class="st">&quot;Month=6&quot;</span>, <span 
class="st">&quot;Month=7&quot;</span>, <span 
class="st">&quot;Month=8&quot;</span>, <span 
class="st">&quot;Month=9&quot;</span>))</span>
+<span id="cb43-4"><a href="reading-and-writing-data.html#cb43-4"></a>  <span 
class="co"># We have enough files</span></span>
+<span id="cb43-5"><a href="reading-and-writing-data.html#cb43-5"></a>  <span 
class="kw">expect_equal</span>(<span class="kw">length</span>(<span 
class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned&quot;</span>, <span 
class="dt">recursive =</span> <span class="ot">TRUE</span>)), <span 
class="dv">153</span>)</span>
+<span id="cb43-6"><a 
href="reading-and-writing-data.html#cb43-6"></a>})</span></code></pre></div>
 <p>As you can see, this has created folders based on the first partition 
variable supplied, <code>Month</code>.</p>
 <p>If you take a look in one of these folders, you will see that the data is 
then partitioned by the second partition variable, <code>Day</code>.</p>
-<div class="sourceCode" id="cb28"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb28-1"><a 
href="reading-and-writing-data.html#cb28-1"></a><span 
class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned/Month=5&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb44"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb44-1"><a 
href="reading-and-writing-data.html#cb44-1"></a><span 
class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned/Month=5&quot;</span>)</span></code></pre></div>
 <pre><code>##  [1] &quot;Day=1&quot;  &quot;Day=10&quot; &quot;Day=11&quot; 
&quot;Day=12&quot; &quot;Day=13&quot; &quot;Day=14&quot; &quot;Day=15&quot; 
&quot;Day=16&quot;
 ##  [9] &quot;Day=17&quot; &quot;Day=18&quot; &quot;Day=19&quot; 
&quot;Day=2&quot;  &quot;Day=20&quot; &quot;Day=21&quot; &quot;Day=22&quot; 
&quot;Day=23&quot;
 ## [17] &quot;Day=24&quot; &quot;Day=25&quot; &quot;Day=26&quot; 
&quot;Day=27&quot; &quot;Day=28&quot; &quot;Day=29&quot; &quot;Day=3&quot;  
&quot;Day=30&quot;
 ## [25] &quot;Day=31&quot; &quot;Day=4&quot;  &quot;Day=5&quot;  
&quot;Day=6&quot;  &quot;Day=7&quot;  &quot;Day=8&quot;  
&quot;Day=9&quot;</code></pre>
 <p>Each of these folders contains 1 or more Parquet files containing the 
relevant partition of the data.</p>
-<div class="sourceCode" id="cb30"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb30-1"><a 
href="reading-and-writing-data.html#cb30-1"></a><span 
class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned/Month=5/Day=10&quot;</span>)</span></code></pre></div>
+<div class="sourceCode" id="cb46"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb46-1"><a 
href="reading-and-writing-data.html#cb46-1"></a><span 
class="kw">list.files</span>(<span 
class="st">&quot;airquality_partitioned/Month=5/Day=10&quot;</span>)</span></code></pre></div>
 <pre><code>## [1] &quot;part-9.parquet&quot;</code></pre>
 </div>
 <div id="reading-partitioned-data" class="section level3">
 <h3><span class="header-section-number">2.7.2</span> Reading Partitioned 
Data</h3>
 <p>You can use <code>open_dataset()</code> to read partitioned data.</p>
-<div class="sourceCode" id="cb32"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb32-1"><a 
href="reading-and-writing-data.html#cb32-1"></a><span class="co"># Read data 
from directory</span></span>
-<span id="cb32-2"><a href="reading-and-writing-data.html#cb32-2"></a>air_data 
&lt;-<span class="st"> </span><span class="kw">open_dataset</span>(<span 
class="st">&quot;airquality_partitioned&quot;</span>)</span>
-<span id="cb32-3"><a href="reading-and-writing-data.html#cb32-3"></a></span>
-<span id="cb32-4"><a href="reading-and-writing-data.html#cb32-4"></a><span 
class="co"># View data</span></span>
-<span id="cb32-5"><a 
href="reading-and-writing-data.html#cb32-5"></a>air_data</span></code></pre></div>
+<div class="sourceCode" id="cb48"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb48-1"><a 
href="reading-and-writing-data.html#cb48-1"></a><span class="co"># Read data 
from directory</span></span>
+<span id="cb48-2"><a href="reading-and-writing-data.html#cb48-2"></a>air_data 
&lt;-<span class="st"> </span><span class="kw">open_dataset</span>(<span 
class="st">&quot;airquality_partitioned&quot;</span>)</span>
+<span id="cb48-3"><a href="reading-and-writing-data.html#cb48-3"></a></span>
+<span id="cb48-4"><a href="reading-and-writing-data.html#cb48-4"></a><span 
class="co"># View data</span></span>
+<span id="cb48-5"><a 
href="reading-and-writing-data.html#cb48-5"></a>air_data</span></code></pre></div>
 <pre><code>## FileSystemDataset with 153 Parquet files
 ## Ozone: int32
 ## Solar.R: int32
@@ -507,6 +561,10 @@ code span.wa { color: #60a0b0; font-weight: bold; 
font-style: italic; } /* Warni
 ## Day: int32
 ## 
 ## See $metadata for additional Schema metadata</code></pre>
+<div class="sourceCode" id="cb50"><pre class="sourceCode r"><code 
class="sourceCode r"><span id="cb50-1"><a 
href="reading-and-writing-data.html#cb50-1"></a><span 
class="kw">test_that</span>(<span class="st">&quot;open_dataset chunk works as 
expected&quot;</span>, {</span>
+<span id="cb50-2"><a href="reading-and-writing-data.html#cb50-2"></a>  <span 
class="kw">expect_equal</span>(<span class="kw">nrow</span>(air_data), <span 
class="dv">153</span>)</span>
+<span id="cb50-3"><a href="reading-and-writing-data.html#cb50-3"></a>  <span 
class="kw">expect_equal</span>(<span class="kw">arrange</span>(<span 
class="kw">collect</span>(air_data), Month, Day), <span 
class="kw">arrange</span>(airquality, Month, Day), <span class="dt">ignore_attr 
=</span> <span class="ot">TRUE</span>)</span>
+<span id="cb50-4"><a 
href="reading-and-writing-data.html#cb50-4"></a>})</span></code></pre></div>
 
 </div>
 </div>
diff --git a/r/search_index.json b/r/search_index.json
index 7ba0099..6d9ff59 100644
--- a/r/search_index.json
+++ b/r/search_index.json
@@ -1 +1 @@
-[["index.html", "Arrow Cookbook 1 Preface", " Arrow Cookbook 1 Preface This 
cookbook aims to provide a number of recipes showing how to perform common 
tasks using arrow. "],["reading-and-writing-data.html", "2 Reading and Writing 
Data 2.1 Converting from a tibble to an Arrow Table 2.2 Converting data from an 
Arrow Table to a tibble 2.3 Reading and Writing Parquet Files 2.4 Reading and 
Writing Feather files 2.5 Reading and Writing Streaming IPC Files 2.6 Reading 
and Writing CSV files 2.7  [...]
+[["index.html", "Arrow Cookbook 1 Preface", " Arrow Cookbook 1 Preface This 
cookbook aims to provide a number of recipes showing how to perform common 
tasks using arrow. "],["reading-and-writing-data.html", "2 Reading and Writing 
Data 2.1 Converting from a tibble to an Arrow Table 2.2 Converting data from an 
Arrow Table to a tibble 2.3 Reading and Writing Parquet Files 2.4 Reading and 
Writing Feather files 2.5 Reading and Writing Streaming IPC Files 2.6 Reading 
and Writing CSV files 2.7  [...]

Reply via email to