<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/data-wrangling-io-part-2/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://www.r-exercises.com/2017/06/07/data-wrangling-io-part-2/?utm_source=rss&utm_medium=rss&utm_campaign=data-wrangling-io-part-2"> R-exercises</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p><a rel="nofollow" href="https://i1.wp.com/www.r-exercises.com/wp-content/uploads/2017/05/monitor.png" target="_blank"><img alt="" src="https://i1.wp.com/www.r-exercises.com/wp-content/uploads/2017/05/monitor.png?resize=275%2C140" class="wp-image-5943" data-recalc-dims="1"></a><br>
Data wrangling is a task of great importance in data analysis. Data wrangling, is the process of importing, cleaning and transforming raw data into actionable information for analysis. It is a time-consuming process which is estimated to take about 60-80% of analyst’s time. In this series we will go through this process. It will be a brief series with goal to craft the reader’s skills on the data wrangling task. This is the first part of this series and it aims to cover the importing of data from the web. In many cases, downloading data in order to process them can be time consuming, therefore being able to import the data straight from the web is a ‘nice-to-have’ skill. Moreover, data isn’t always not saved in structured files, but they are on the web in forms of text and tables, in this set of exercise we will go through the latter case. In case you want me to go through the former case as well, please let me know at the comment section. </p>
<p>Before proceeding, it might be helpful to look over the help pages for the <code>getURL</code>, <code>fromJSON</code>, <code>ldply</code>, <code>xmlToList</code>, <code>read_html</code>, <code>html_nodes</code>, <code>html_table</code>, <code>readHTMLTable</code>, <code>htmltab</code>.</p>
<p>Moreover please load the following libraries.<br>
<code>install.packages(&quot;RCurl&quot;)</code><br>
<code>library(RCurl)</code><br>
<code>install.packages(&quot;rjson&quot;)</code><br>
<code>library(rjson)</code><br>
<code>install.packages(&quot;XML&quot;)</code><br>
<code>library(XML)</code><br>
<code>install.packages(&quot;plyr&quot;)</code><br>
<code>library(plyr)</code><br>
<code>install.packages(&quot;rvest&quot;)</code><br>
<code>library(rvest)</code><br>
<code>install.packages(&quot;htmltab&quot;)</code><br>
<code>library(htmltab)</code></p>
<p>Answers to the exercises are available <a rel="nofollow" href="http://www.r-exercises.com/2017/06/07/data-wrangling-io-part-2-solutions" target="_blank">here</a>.</p>
<p>If you obtained a different (correct) answer than those listed on the solutions page, please feel free to post your answer as a comment on that page.</p>
<p>Exercise 1</p>
<p>Retrieve the source of the web page “https://raw.githubusercontent.com/VasTsak/r-exercises-dw/master/part-1/data.csv” and assign it to the object “url”</p>
<p>Exercise 2</p>
<p>Read the csv file and assign it to the “csv_file” object.</p>
<p>Exercise 3</p>
<p>Do the same as exercise 1, but with the url: “https://raw.githubusercontent.com/VasTsak/r-exercises-dw/master/part-2/data.txt” and then assign it to the “txt_file” object.<br>
Note: it is a txt file, so you should use the adequate function in order to import it.</p>
<p>Exercise 4</p>
<p>Do the same as exercise 1, but with the url: “https://raw.githubusercontent.com/VasTsak/r-exercises-dw/master/part-2/data.json” and then assign it to the “json_file” object.<br>
Note: it is a json file, so you should use the adequate function in order to import it.</p>
<div>
<aside><img src="http://www.r-exercises.com/2017/06/07/data-wrangling-io-part-2/?utm_source=rss&utm_medium=rss&utm_campaign=data-wrangling-io-part-2"></aside>
<div><strong>Learn more</strong> about Data Pre-Processing in the online course <a rel="nofollow" href="http://www.r-exercises.com/product/r-data-pre-processing-data-management-shape-your-data/" target="_blank">R Data Pre-Processing &amp; Data Management – Shape your Data!</a>. In this course you will learn how to:
<ul>
<li>import data into R in several ways while also beeing able to identify a suitable import tool</li>
<li>use SQL code within R</li>
<li>And much more</li>
</ul>
</div>
</div>
<p>Exercise 5</p>
<p>Do the same as exercise 1, but with the url: “https://raw.githubusercontent.com/VasTsak/r-exercises-dw/master/part-2/data.xml” and then assign it to the “xml_file” object.<br>
Note: it is a xml file, so you should use the adequate function in order to import it.</p>
<p>Exercise 6</p>
<p>We will go through web scraping now. Read the html file “http://www.worldatlas.com/articles/largest-cities-in-europe-by-population.html” and assign it to the object “url”.<br>
hint: consider using <code>read_html</code></p>
<p>Exercise 7</p>
<p>Select the “table” nodes from the html document you retrieved before.<br>
hint: consider using <code>html_nodes</code></p>
<p>Exercise 8 </p>
<p>Convert the node you retrieved at exercise 7, to an actionable list for processing.<br>
hint: consider using <code>html_table</code></p>
<p>Exercise 9 </p>
<p>Let’s go to a faster and more straight forward function, retrieve the html document like you did at exercise 6 and make it an actionable list using the function <code>readHTMLTable</code>.</p>
<p>Exercise 10 </p>
<p>This may be a bit tricky, but give it a try. Retrieve the html document like you did at exercise 6 and make it an actionable data frame using the function <code>htmltab</code>.</p>
<div>
<h3>Related exercise sets:</h3>
<ol>
<li><a rel="nofollow" href="http://www.r-exercises.com/2017/05/24/data-wrangling-part-1-io/" title="Data wrangling : I/O (Part-1)" target="_blank">Data wrangling : I/O (Part-1) </a></li>
<li><a rel="nofollow" href="http://www.r-exercises.com/2017/01/01/building-shiny-app-exercises-part-4/" title="Building Shiny App exercises part 4" target="_blank">Building Shiny App exercises part 4 </a></li>
<li><a rel="nofollow" href="http://www.r-exercises.com/2016/12/20/web-scraping-exercises/" title="Web Scraping Exercises" target="_blank">Web Scraping Exercises </a></li>
<li><a rel="nofollow" href="http://www.r-exercises.com/start-here-to-learn-r/" target="_blank">Explore all our (>1000) R exercises</a></li>
<li><a rel="nofollow" href="http://www.r-exercises.com/r-courses/" target="_blank">Find an R course using our R Course Finder</a> directory</li>
</ol>
</div>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://www.r-exercises.com/2017/06/07/data-wrangling-io-part-2/?utm_source=rss&utm_medium=rss&utm_campaign=data-wrangling-io-part-2"> R-exercises</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...

	<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/579XfWkyLXQ" height="1"></a></div>