<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9065396442320388284</id><updated>2012-02-29T07:56:18.614Z</updated><category term='Big data'/><category term='sqldf'/><category term='gvisSteppedAreaChart'/><category term='books'/><category term='tikz'/><category term='iBook G4'/><category term='iris'/><category term='data.table'/><category term='gvisGeoChart'/><category term='Geo Chart'/><category term='adjustbox'/><category term='Motion Chart'/><category term='Apple'/><category term='apply'/><category term='Tutorials'/><category term='credit rating'/><category term='ChainLadder'/><category term='deck.js'/><category term='Insurance'/><category term='fitdistrplus'/><category term='Google Public Data Explorer'/><category term='reshape'/><category term='find'/><category term='fitdist'/><category term='doBy'/><category term='Sweave'/><category term='Warwick'/><category term='digitizer'/><category term='survey'/><category term='R-2.14.0'/><category term='Rook'/><category term='animation'/><category term='IT policy'/><category term='Change management'/><category term='gWidgets'/><category term='Risk'/><category term='UseR2011'/><category term='Operating System'/><category term='gvisBubbleChart'/><category term='News'/><category term='vignette'/><category term='XeLaTeX'/><category term='by'/><category term='fit distribution'/><category term='reporting'/><category term='geomap'/><category term='Poster'/><category term='reserving'/><category term='interactive'/><category term='Seminar'/><category term='Open Data'/><category term='Mac OS 10.4.11'/><category term='attachfile2'/><category term='World Bank'/><category term='initial view'/><category term='plyr'/><category term='XML'/><category term='language'/><category term='Guardian'/><category term='WDI'/><category term='tikzDevice'/><category term='lattice'/><category term='Presentations'/><category term='LondonR'/><category term='options'/><category term='Tiger'/><category term='replace'/><category term='cplm'/><category term='blogger'/><category term='aggregate'/><category term='RJSONIO'/><category term='Soapbox'/><category term='EU'/><category term='find and replace'/><category term='regular expressions'/><category term='googleVis'/><category term='fitdistr'/><category term='publishers'/><category term='gvisGeoMap'/><category term='gvisAnnotatedTimeLine'/><category term='deSolve'/><category term='R'/><title type='text'>mages' blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-341058267036638765</id><published>2012-02-27T07:30:00.000Z</published><updated>2012-02-27T07:30:30.535Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='digitizer'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Guardian'/><title type='text'>Show me the data! Or how to digitize plots</title><content type='html'>&lt;p&gt;I had mentioned the &lt;a href="http://www.guardian.co.uk/data"&gt;Guardian's data blog&lt;/a&gt; and the need for more data journalism earlier &lt;a href="http://lamages.blogspot.com/2011/12/data-is-new-gold.html"&gt;here&lt;/a&gt;. What I really like about the Guardian's approach in particular is that they share the data of their articles and encourage readers to use it.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Of course there are perfectly valuable reasons for only displaying a chart and not making the underlying data available, e.g. to generate leads, as potential customers may get in touch with you asking for the underlying data, or technology issues that don't allow you to upload data, etc.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I personally believe that when I show a chart I should also make the underlying data available. Pretty pictures give you the attention, but the underlying data will offer you an opportunity to engage with your reader on a different level. This might be similar to open source software. In most cases users don't want to see and read the code, but having the knowledge that they could provides more credibility.&lt;br /&gt;&lt;/p&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wJGIXqOex3Y/TzwaOelHKOI/AAAAAAAAALE/2guW6NoU0Bk/s1600/digitizer.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="118" src="http://3.bp.blogspot.com/-wJGIXqOex3Y/TzwaOelHKOI/AAAAAAAAALE/2guW6NoU0Bk/s200/digitizer.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Screen shot of &lt;a href="http://plotdigitizer.sourceforge.net/"&gt;plot digitizer&lt;/a&gt; using Guy Carpenter's &lt;br /&gt;&lt;a href="http://www.gccapitalideas.com/2011/01/05/chart-guy-carpenter-global-property-catastrophe-rate-on-line-index/"&gt;global property catastrophe rate on line index&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Here is another reason why I should make the data available: Because it is easy to extract the data from a chart anyhow, thanks to digitizing software like the Java application &lt;a href="http://plotdigitizer.sourceforge.net/"&gt;plot digitizer&lt;/a&gt;. While in the past I may have used graph paper and a ruler, nowadays it only takes a few minutes to extract the information.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-341058267036638765?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/341058267036638765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/02/show-me-data-or-how-to-digitize-plots.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/341058267036638765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/341058267036638765'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/02/show-me-data-or-how-to-digitize-plots.html' title='Show me the data! Or how to digitize plots'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-wJGIXqOex3Y/TzwaOelHKOI/AAAAAAAAALE/2guW6NoU0Bk/s72-c/digitizer.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-8219942440997455513</id><published>2012-02-20T19:00:00.000Z</published><updated>2012-02-20T22:01:40.335Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seminar'/><category scheme='http://www.blogger.com/atom/ns#' term='News'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Big data'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Big data seminar in London on 1 March 2012</title><content type='html'>&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/9/96/Fotothek_df_n-10_0000117.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/9/96/Fotothek_df_n-10_0000117.jpg" width="195" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;"&gt;&lt;span class="Apple-style-span" style="line-height: 15px;"&gt;Removable disk packs in 1975&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: xx-small;"&gt;Source: &lt;a href="http://en.wikipedia.org/wiki/File:Fotothek_df_n-10_0000117.jpg"&gt;Wikipedia&lt;/a&gt;, via &lt;a href="http://www.deutschefotothek.de/obj87100056.html"&gt;Deutsche Fotothek&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.soi.city.ac.uk/~sbbf175/"&gt;David Chan&lt;/a&gt; from City University is organising an &lt;a href="http://www.city.ac.uk/events/2012/march/tackling-the-big-data-challenge-an-interdisciplinary-symposium"&gt;interdisciplinary symposium on tackling the ‘Big Data’ challenge&lt;/a&gt; on 1 March 2012.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It is an open seminar trying to bring together academics and practitioners from across industry to tackle the challenges posed by "big data" - the growing amount of information that needs to be stored, searched, analysed and visualised in the digital age.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The event will take place in the Oliver Thompson Lecture Theatre, &lt;a href="http://maps.google.co.uk/maps?q=Northampton+Square,+London+EC1V+0HB,+United+Kingdom&amp;hl=en&amp;hnear=Northampton+Square,+London+EC1V,+United+Kingdom&amp;gl=uk&amp;t=m&amp;z=16"&gt;Northampton Square, London EC1V 0HB&lt;/a&gt;. &lt;a href="http://www.city.ac.uk/events/2012/march/tackling-the-big-data-challenge-an-interdisciplinary-symposium#book-modal"&gt;Booking&lt;/a&gt; is required if you would like to attend. For more details check out the &lt;a href="http://www.city.ac.uk/events/2012/march/tackling-the-big-data-challenge-an-interdisciplinary-symposium"&gt;event page&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;See you there.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-8219942440997455513?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/8219942440997455513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/02/big-data-seminar-in-london-on-1-march.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8219942440997455513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8219942440997455513'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/02/big-data-seminar-in-london-on-1-march.html' title='Big data seminar in London on 1 March 2012'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-575796725707047035</id><published>2012-02-16T06:56:00.000Z</published><updated>2012-02-16T08:34:08.284Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='gvisAnnotatedTimeLine'/><category scheme='http://www.blogger.com/atom/ns#' term='reshape'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Risk'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='IT policy'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Reshaping the IT world</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-mUZf-IGfZcQ/Ty5zgpCqaeI/AAAAAAAAAKs/LNvmjwAIlsc/s1600/sketch.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="200" width="153" src="http://1.bp.blogspot.com/-mUZf-IGfZcQ/Ty5zgpCqaeI/AAAAAAAAAKs/LNvmjwAIlsc/s200/sketch.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;During my university time I worked on the IT help desk for a while. One day I received a call from a professor, who said that his printer had stopped working. So I asked him, if there was a message on the display and if he could read it to me. "Oh yes", he said, "it says: 'Load A4 paper.'"  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zdnet.com/blog/btl/cisco-gen-y-study-mobile-devices-valued-more-than-higher-salaries/62246"&gt;Rachel King quotes a study by Cisco on ZDnet&lt;/a&gt;, which believes to have found out that college students and young employees under the age of 30 would rather take a lower salary than having no social media freedom, device flexibility and work mobility.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It feels like the 1960's in a lot of offices and IT departments of today. A younger generation is demanding more freedom and fun. It just not called rock music, mini skirts or of course the anti baby pill, which the generation of my professor was fighting for. That's all established now. It is the digital equivalent of those rights and I can understand that IT departments are concerned about this. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;It is fascinating to observe how consumer IT goods and software enter offices, e.g. employees wanting to switch from their corporate QWERTY-smartphones to their own touch-screen devices. Of course there have always been &lt;a href="http://www.actuaries.org.uk/research-and-resources/documents/actuarial-toolkit-introducing-toolkit-manifesto"&gt;geeks and youngsters who tried&lt;/a&gt; to push the boundaries of the corporate IT policy, but today they are joined by the most senior guys: the &lt;a href="http://en.wikipedia.org/wiki/Corporate_title"&gt;C-suite&lt;/a&gt;, who want to show of their new gadgets and tablets to their peers.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Risk mitigation is the key. The growing demand for a more flexible IT infrastructure has seen new companies sprung up to solve those business problems, be it to create a secure connection from private devices into corporate networks or to support open source software like Linux and R. The &lt;i&gt;Economist&lt;/i&gt; published an insightful &lt;a href="http://www.economist.com/node/21531109"&gt;special report&lt;/a&gt; on this subject in October 2011, so did &lt;a href="http://www.accenture.com/SiteCollectionDocuments/PDF/Accenture-Managing-the-infiltration-of-Consumer-IT-into-the-workforce.pdf"&gt;&lt;i&gt;Accenture&lt;/i&gt;&lt;/a&gt;, and the German news magazine &lt;i&gt;Der Spiegel&lt;/i&gt; titled an article &lt;a href="http://www.spiegel.de/karriere/berufsleben/0,1518,813651,00.html"&gt;"Ferrari at home and horse-drawn carriage in the office"&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;There is one company that has reshaped the IT world more than others over the last few years, and that is &lt;a href="http://www.apple.com"&gt;Apple&lt;/a&gt;. Their shareholders have been rewarded for its innovations and bravery of entering new markets, see Apple's stock market performance below. Maybe worthwhile mentioning when you have challenging conversations with your IT folks.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;iframe src="http://dl.dropbox.com/u/7586336/blogger/Apple/AppleAnnotatedTimeLine20120214.html" width="610", height="480"  scrolling="no" FRAMEBORDER="0" border="0"&gt;Loading ... &lt;/iframe&gt;&lt;br /&gt;The chart above shows Apple's weekly closing share prices and volumes over time since 1984, sourced from &lt;a  href="http://finance.yahoo.com"&gt;Yahoo! Finance&lt;/a&gt; and displayed as a time line using the &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery.html"&gt;Google Visualisation API&lt;/a&gt; in R with &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt;. You find a very similar example in the &lt;code&gt;googleVis&lt;/code&gt; help page of &lt;code&gt;gvisAnnotatedTimeLine&lt;/code&gt;.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1744195.js"&gt; &lt;/script&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-575796725707047035?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/575796725707047035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/02/reshaping-world.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/575796725707047035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/575796725707047035'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/02/reshaping-world.html' title='Reshaping the IT world'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-mUZf-IGfZcQ/Ty5zgpCqaeI/AAAAAAAAAKs/LNvmjwAIlsc/s72-c/sketch.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-6290221538153231524</id><published>2012-02-09T15:00:00.000Z</published><updated>2012-02-09T14:45:43.279Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='lattice'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='reshape'/><category scheme='http://www.blogger.com/atom/ns#' term='iris'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>The reshape function</title><content type='html'>&lt;p&gt;The other day I wrote about the R functions &lt;a href="http://lamages.blogspot.com/2012/01/say-it-in-r-with-by-apply-and-friends.html"&gt;by, apply and friends&lt;/a&gt;, which allow me to operate on subsets of data. All those functions work nicely, if the data is given in the right format. More often than not it isn't and I have to reshape the data beforehand. Thus, time to discuss the &lt;code&gt;reshape&lt;/code&gt; function. I will focus on the &lt;code&gt;reshape&lt;/code&gt; function in base R, and not the &lt;a href="http://cran.r-project.org/web/packages/reshape2/index.html"&gt;package&lt;/a&gt; of the same name.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I use &lt;a href="http://en.wikipedia.org/wiki/Ronald_Fisher"&gt;Fischer's&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Iris_flower_data_set"&gt;iris data&lt;/a&gt; set again, as it is readily available after starting R. The iris data set has 150 observation and the first 6 rows look like this:&lt;br /&gt;&lt;/p&gt;&lt;code&gt;&lt;pre&gt;head(iris)&lt;br /&gt;  Sepal.Length Sepal.Width Petal.Length Petal.Width Species&lt;br /&gt;1          5.1         3.5          1.4         0.2  setosa&lt;br /&gt;2          4.9         3.0          1.4         0.2  setosa&lt;br /&gt;3          4.7         3.2          1.3         0.2  setosa&lt;br /&gt;4          4.6         3.1          1.5         0.2  setosa&lt;br /&gt;5          5.0         3.6          1.4         0.2  setosa&lt;br /&gt;6          5.4         3.9          1.7         0.4  setosa&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;p&gt;I would like to create a box whisker plot, showing the measurements of the observations for each of the species, as in the chart below.&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-65r2qfRppWw/Ty5H-a0ugbI/AAAAAAAAAKI/5vpIQ7cG9ok/s1600/irisplot.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="107" width="320" src="http://4.bp.blogspot.com/-65r2qfRppWw/Ty5H-a0ugbI/AAAAAAAAAKI/5vpIQ7cG9ok/s320/irisplot.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;I know, that if I had all measurements in one column and the dimension in another column, I could produce a graph like this in one line with &lt;a href="http://lmdvr.r-forge.r-project.org/figures/figures.html"&gt;&lt;code&gt;lattice&lt;/code&gt;.&lt;/a&gt; &lt;br /&gt;&lt;code&gt;&lt;pre&gt;library(lattice)&lt;br /&gt;bwplot(Measurement ~ Species | Dimension, data=reshaped.iris)&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Hence the &lt;code&gt;reshape&lt;/code&gt; function is what I need. From the help file I learn that I want to transform my data from a wide format into a long format (&lt;code&gt;direction="long")&lt;/code&gt;. In the long format I would like a &lt;b&gt;v&lt;/b&gt;aribale with the measurements (&lt;/code&gt;v.names="Measurement"&lt;/code&gt;), which I get by running through the first four columns (&lt;code&gt;varying=1:4&lt;/code&gt;). I know which measurement I am reading by looking at the column names (&lt;code&gt;times=names(iris)[1:4]&lt;/code&gt;), and I capture the dimension names in a new variable (&lt;code&gt;timevar="Dimension"&lt;/code&gt;). This gives me the following statement:  &lt;br /&gt;&lt;code&gt;&lt;pre&gt;reshaped.iris &lt;- reshape(iris, varying=1:4, v.names="Measurement", &lt;br /&gt;                         timevar="Dimension", times=names(iris)[1:4], &lt;br /&gt;                         idvar="Measure ID", direction="long") &lt;br /&gt;&lt;br /&gt;head(reshaped.iris)&lt;br /&gt;               Species    Dimension Measurement Measure ID&lt;br /&gt;1.Sepal.Length  setosa Sepal.Length         5.1          1&lt;br /&gt;2.Sepal.Length  setosa Sepal.Length         4.9          2&lt;br /&gt;3.Sepal.Length  setosa Sepal.Length         4.7          3&lt;br /&gt;4.Sepal.Length  setosa Sepal.Length         4.6          4&lt;br /&gt;5.Sepal.Length  setosa Sepal.Length         5.0          5&lt;br /&gt;6.Sepal.Length  setosa Sepal.Length         5.4          6&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;That's it, I can create the lattice box-whisker plot.&lt;/p&gt;&lt;p&gt;In my next example I would like the measurements of length and width in separate columns and capture the flower part in a new variable, so I can create scatterplots of length against width. Tweaking the reshape statement slightly gives me:&lt;code&gt;&lt;pre&gt;reshaped.iris.sp &lt;- reshape(iris, varying=list(c(1,3),c(2,4)),&lt;br /&gt;                            v.names=c("Length", "Width"), &lt;br /&gt;                            timevar="Part", times=c("Sepal", "Petal"),&lt;br /&gt;                            idvar="Measure ID", direction="long")&lt;br /&gt;&lt;br /&gt;head(reshaped.iris.sp)&lt;br /&gt;        Species  Part Length Width Measure ID&lt;br /&gt;1.Sepal  setosa Sepal    5.1   3.5          1&lt;br /&gt;2.Sepal  setosa Sepal    4.9   3.0          2&lt;br /&gt;3.Sepal  setosa Sepal    4.7   3.2          3&lt;br /&gt;4.Sepal  setosa Sepal    4.6   3.1          4&lt;br /&gt;5.Sepal  setosa Sepal    5.0   3.6          5&lt;br /&gt;6.Sepal  setosa Sepal    5.4   3.9          6&lt;br /&gt;&lt;br /&gt;xyplot(Length ~  Width | Species, groups=Part, &lt;br /&gt;       data=reshaped.iris.sp, auto.key=list(space="right"))&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MetoA6xB74k/Ty5R8qK2aZI/AAAAAAAAAKU/4zvfy1UiURU/s1600/scatteririsplot.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="166" width="320" src="http://1.bp.blogspot.com/-MetoA6xB74k/Ty5R8qK2aZI/AAAAAAAAAKU/4zvfy1UiURU/s320/scatteririsplot.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;Let's swap Part against Species.&lt;code&gt;&lt;pre&gt;xyplot(Length ~  Width | Part, groups=Species, &lt;br /&gt;       data=reshaped.iris.sp, auto.key=list(space="right"))&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iqOiJ3GnSdY/Ty5q1txLm2I/AAAAAAAAAKg/4sHW2KKm_58/s1600/scatteririsplot2.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="166" width="320" src="http://2.bp.blogspot.com/-iqOiJ3GnSdY/Ty5q1txLm2I/AAAAAAAAAKg/4sHW2KKm_58/s320/scatteririsplot2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;I think, the charts illustrate quite nicely why the iris data set has become a typical test case for many classification techniques in machine learning.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-6290221538153231524?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/6290221538153231524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/02/reshape-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/6290221538153231524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/6290221538153231524'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/02/reshape-function.html' title='The reshape function'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-65r2qfRppWw/Ty5H-a0ugbI/AAAAAAAAAKI/5vpIQ7cG9ok/s72-c/irisplot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-1725664901476384797</id><published>2012-02-05T20:31:00.000Z</published><updated>2012-02-05T21:45:53.177Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='gvisBubbleChart'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>googleVis 0.2.14 is released</title><content type='html'>&lt;p&gt;Version 0.2.14 of the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; package was released on &lt;a href="http://cran.r-project.org/web/packages/googleVis/index.html"&gt;CRAN&lt;/a&gt; today.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Changes&lt;/h2&gt;&lt;p&gt;The help files have been checked against changes of the &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery.html"&gt;Google Visualisation API&lt;/a&gt;, typos in the &lt;a href="http://cran.r-project.org/web/packages/googleVis/vignettes/googleVis.pdf"&gt;vignette&lt;/a&gt; have been ironed out (thanks to &lt;a href="http://www.portfolioprobe.com/blog/"&gt;Pat Burns&lt;/a&gt; for pointing them out), a new section on dealing with apostrophes in column names has been added and the example in the section "Setting options" has been reviewed. For more details and demos check out the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;project site&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;New Feature&lt;/h2&gt;&lt;p&gt;Additionally a new visualisation function has been added: &lt;code&gt;gvisBubbleChart&lt;/code&gt;, which provides an interface to the  &lt;a href="http://code.google.com/apis/visualization/documentation/gallery/bubblechart.html"&gt;bubble chart&lt;/a&gt; of the Google Visualisation API. You could think of it as a static version of the motion chart. Here are some examples, followed by a motion chart.&lt;br /&gt;&lt;/&gt;&lt;br /&gt;&lt;iframe src="http://dl.dropbox.com/u/7586336/blogger/bubblecharts.html" width="550" height="1350" scrolling="no" FRAMEBORDER="0" border=0&gt;Loading ...&lt;/iframe&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;library(googleVis)&lt;br /&gt;data(Fruits)&lt;br /&gt;&lt;br /&gt;P &lt;- lapply(2008:2010, function(x)&lt;br /&gt;      gvisBubbleChart(subset(Fruits, Year %in% x), idvar="Fruit",&lt;br /&gt;       xvar="Sales", yvar="Expenses",&lt;br /&gt;       colorvar="Location", sizevar="Profit",&lt;br /&gt;       options=list(width=400, height=300, &lt;br /&gt;        colors='["#B2EE2C", "#3F4FFF"]',&lt;br /&gt;        title=paste("Fruit data ",x,", bubble size reflects profit", sep=""),&lt;br /&gt;        sizeAxis="{minValue: 0,  maxSize: 12}",&lt;br /&gt;        vAxis=paste("{title: 'Expenses', viewWindow:{min:65, max:95},",&lt;br /&gt;             "baselineColor:'#EEEEEE', gridlines:{color:'#EEEEEE'}}"),&lt;br /&gt;        hAxis=paste("{title: 'Sales', viewWindow:{min:70, max:115},",&lt;br /&gt;             "baselineColor:'#EEEEEE', gridlines:{color:'#EEEEEE'}}")&lt;br /&gt;             ))&lt;br /&gt;            )&lt;br /&gt;bubbleCharts &lt;- gvisMerge(P[[1]], gvisMerge(P[[2]], P[[3]]))&lt;br /&gt;&lt;br /&gt;M &lt;- gvisMotionChart(Fruits, "Fruit", "Year", &lt;br /&gt;                     options=list(width=430, height=360))&lt;br /&gt;plot(gvisMerge(bubbleCharts, M))&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-1725664901476384797?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/1725664901476384797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/02/googlevis-0214-is-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1725664901476384797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1725664901476384797'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/02/googlevis-0214-is-released.html' title='googleVis 0.2.14 is released'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-7356041776909284355</id><published>2012-02-01T07:53:00.000Z</published><updated>2012-02-04T14:08:32.907Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='doBy'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='aggregate'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>R is the easiest language to speak badly</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yHuTjV_PB7U/TyhPpnOPcqI/AAAAAAAAAJw/1iFmqX3W5AI/s1600/sketch.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="200" width="128" src="http://4.bp.blogspot.com/-yHuTjV_PB7U/TyhPpnOPcqI/AAAAAAAAAJw/1iFmqX3W5AI/s200/sketch.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;I am amazed by the number of comments I received on my recent blog entry about &lt;a href="http://lamages.blogspot.com/2012/01/say-it-in-r-with-by-apply-and-friends.html"&gt;"by", "apply" and friends&lt;/a&gt;. I had started my post by pointing out that R is a language. Well indeed, I have come to the conclusion, that it is a language with lots of irregular expressions and dialects. It feels a bit like German or French where you have to learn and memorise the different articles. The &lt;a href="http://en.wikipedia.org/wiki/German_grammar"&gt;Germans&lt;/a&gt; have three singular definite articles: &lt;i&gt;der&lt;/i&gt; (male), &lt;i&gt;die&lt;/i&gt; (female) and &lt;i&gt;das&lt;/i&gt; (neutral), the &lt;a href="http://en.wikipedia.org/wiki/French_grammar"&gt;French&lt;/a&gt; have two: &lt;i&gt;le&lt;/i&gt; (male) and &lt;i&gt;la&lt;/i&gt; (female). Of course there is no mapping between them, and how do you explain that a girl in German is neutral (das Mädchen), while manhood is female (die Männlichkeit)? &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Back to R. As I found out, there are lots of different ways to calculate the means on subsets of data. I begin to wonder, why so many different interfaces and functions have been developed over the years, and also why I didn't use the &lt;code&gt;aggregate&lt;/code&gt; function more often in the past?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Can we blame internet search engines? Why should I learn a programming language properly, when I can find approximate answers to my problem online. I may not end up with the best answer, but with something which will work after all: &lt;i&gt;Don't know why, but it works.&lt;/i&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;And sometimes the help files can be more difficult to understand than the code in the examples. Hence, I end up playing around with the example code until it works, and only then I try to figure out how it works. That was my experience with &lt;a href="http://stat.ethz.ch/R-manual/R-patched/library/stats/html/reshape.html"&gt;&lt;code&gt;reshape&lt;/code&gt;&lt;/a&gt;.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Maybe this is a bit harsh. It is always up to the individual to improve his language skills, but you can get drunk in a pub as well, by only being able to order beer. I think it was George Bernard Shaw, who said: "R is the easiest language to speak badly." No, actually he said: "English is the easiest language to speak badly." Maybe that explains the success of English and R? &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Reading helps. More and more books have been &lt;a href="http://lamages.blogspot.com/2011/10/r-related-books-traditional-vs-online.html"&gt;published on R over the last years&lt;/a&gt;, and &lt;a href="http://cran.r-project.org/other-docs.html#nenglish"&gt;not only in English&lt;/a&gt;. But which should you pick? Xi'an's &lt;a href="http://xianblog.wordpress.com/2012/01/31/the-art-of-r-programming-guest-post/"&gt;review&lt;/a&gt; on the &lt;a href="http://www.amazon.com/gp/product/1593273843/ref=as_li_ss_tl?ie=UTF8&amp;tag=chrprobboo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1593273843"&gt;Art of R Programming&lt;/a&gt; suggests that it might be a good start.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Back to &lt;code&gt;aggregate&lt;/code&gt;. Has anyone noticed, that the formula interface of &lt;code&gt;aggregate&lt;/code&gt; is different to &lt;code&gt;summaryBy&lt;/code&gt;?&lt;br /&gt;&lt;/p&gt;&lt;code&gt;&lt;pre&gt;aggregate(cbind(Sepal.Width, Petal.Width) ~ Species, data=iris, FUN=mean)&lt;br /&gt;     Species Sepal.Width Petal.Width&lt;br /&gt;1     setosa       3.428       0.246&lt;br /&gt;2 versicolor       2.770       1.326&lt;br /&gt;3  virginica       2.974       2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;versus&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;library(doBy)&lt;br /&gt;summaryBy(Sepal.Width + Petal.Width ~ Species, data=iris, FUN=mean)&lt;br /&gt;     Species Sepal.Width.mean Petal.Width.mean&lt;br /&gt;1     setosa            3.428            0.246&lt;br /&gt;2 versicolor            2.770            1.326&lt;br /&gt;3  virginica            2.974            2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;And another slightly more complex example:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;aggregate(cbind(ncases, ncontrols) ~ alcgp + tobgp, data = esoph, FUN=sum)&lt;br /&gt;summaryBy(ncases + ncontrols ~ alcgp + tobgp, data = esoph, FUN=sum)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-7356041776909284355?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/7356041776909284355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/02/r-is-easiest-language-to-speak-badly.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/7356041776909284355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/7356041776909284355'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/02/r-is-easiest-language-to-speak-badly.html' title='R is the easiest language to speak badly'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-yHuTjV_PB7U/TyhPpnOPcqI/AAAAAAAAAJw/1iFmqX3W5AI/s72-c/sketch.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-692533480759464987</id><published>2012-01-28T14:43:00.000Z</published><updated>2012-02-04T07:31:50.239Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='doBy'/><category scheme='http://www.blogger.com/atom/ns#' term='data.table'/><category scheme='http://www.blogger.com/atom/ns#' term='apply'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='by'/><category scheme='http://www.blogger.com/atom/ns#' term='aggregate'/><category scheme='http://www.blogger.com/atom/ns#' term='plyr'/><category scheme='http://www.blogger.com/atom/ns#' term='sqldf'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Say it in R with "by", "apply" and friends</title><content type='html'>&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/4/41/Iris_versicolor_3.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="150" src="http://upload.wikimedia.org/wikipedia/commons/4/41/Iris_versicolor_3.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Iris_flower_data_set" style="background-attachment: initial; background-clip: initial; background-color: #f9f9f9; background-image: none; background-origin: initial; color: #0b0080; font-family: sans-serif; font-size: 11px; line-height: 15px; text-align: left; text-decoration: none;" title="Iris versicolor"&gt;Iris versicolor&lt;/a&gt;&amp;nbsp;(Source: Wikipedia)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://cran.r-project.org/doc/manuals/R-lang.html"&gt;R is a language&lt;/a&gt;, as Luis Apiolaza pointed out in his recent &lt;a href="http://www.quantumforest.com/2012/01/r-is-a-language/"&gt;post&lt;/a&gt;. This is absolutely true, and learning a programming language is not much different from learning a foreign language. It takes time and a lot of practice to be proficient in it. I started using R when I moved to the UK and I wonder, if I have a better understanding of English or R by now.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Languages are full of surprises, in particular for non-native speakers. The other day I learned that there is &lt;i&gt;courtesy&lt;/i&gt; and &lt;i&gt;curtsey&lt;/i&gt;. Both words sounded very similar to me, but of course created some laughter when I mixed them up in an email. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;With languages you can get into habits of using certain words and phrases, but sometimes you see or hear something, which shakes you up again. So did the following two lines in R with me:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;f &lt;- function(x) x^2&lt;br /&gt;sapply(1:10, f)&lt;br /&gt;[1]   1   4   9  16  25  36  49  64  81 100&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;It reminded me of the phrase that &lt;a href="http://cran.r-project.org/doc/manuals/R-lang.html#Computing-on-the-language"&gt;&lt;i&gt;everything is a list&lt;/i&gt;&lt;/a&gt; in R. It showed me again how easily a &lt;i&gt;for&lt;/i&gt; loop can be turned into a statement using the &lt;code&gt;apply&lt;/code&gt; family of functions and how little I know about all the subtleties of R.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I remember how happy I felt, when I finally understood the &lt;a href="http://stat.ethz.ch/R-manual/R-devel/library/base/html/by.html"&gt;&lt;code&gt;by&lt;/code&gt;&lt;/a&gt; function in R. I started to use it all  the time, closing my eyes on &lt;code&gt;aggregate&lt;/code&gt; and the &lt;code&gt;apply&lt;/code&gt; functions family. Here is an example where we calculate the means of the various measurements by species of the famous &lt;a href="http://en.wikipedia.org/wiki/Iris_flower_data_set"&gt;iris data set&lt;/a&gt; using &lt;code&gt;by&lt;/code&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;by&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;do.call("rbind", as.list(&lt;br /&gt;  by(iris, list(Species=iris$Species), function(x){&lt;br /&gt;    y &lt;- subset(x, select= -Species)&lt;br /&gt;    apply(y, 2, mean)&lt;br /&gt;  }&lt;br /&gt;)))&lt;br /&gt;&lt;br /&gt;           Sepal.Length Sepal.Width Petal.Length Petal.Width&lt;br /&gt;setosa            5.006       3.428        1.462       0.246&lt;br /&gt;versicolor        5.936       2.770        4.260       1.326&lt;br /&gt;virginica         6.588       2.974        5.552       2.026&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;Now let's find alternative ways of expressing ourselves, using other words/functions of the R language, such as &lt;code&gt;aggregate, apply, sapply, tapply, data.table, ddply, sqldf&lt;/code&gt;, and &lt;code&gt;summaryBy&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;aggregate&lt;/h2&gt;The &lt;code&gt;aggregate&lt;/code&gt; function splits the data into subsets and computes summary statistics for each of them. The output of &lt;code&gt;aggregate&lt;/code&gt; is a &lt;code&gt;data.frame&lt;/code&gt;, including a column for species.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre&gt;iris.x &lt;- subset(iris, select= -Species)&lt;br /&gt;iris.s &lt;- subset(iris, select= Species)&lt;br /&gt;aggregate(iris.x, iris.s, mean)&lt;br /&gt;&lt;br /&gt;     Species Sepal.Length Sepal.Width Petal.Length Petal.Width&lt;br /&gt;1     setosa        5.006       3.428        1.462       0.246&lt;br /&gt;2 versicolor        5.936       2.770        4.260       1.326&lt;br /&gt;3  virginica        6.588       2.974        5.552       2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;b&gt;Addition:&lt;/b&gt; As John Christie points out in the comments, &lt;code&gt;aggregate&lt;/code&gt; has also a formula interface, which simplifies the call to:&lt;code&gt;&lt;pre&gt;aggregate( . ~ Species, iris, mean)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;apply and tapply&lt;/h2&gt;The combination of &lt;code&gt;tapply&lt;/code&gt; and &lt;code&gt;apply&lt;/code&gt; achieves a similar result, but this time the output is a &lt;code&gt;matrix&lt;/code&gt; and hence we lose the column with species. The species are now the row names. &lt;code&gt;&lt;pre&gt;apply(iris.x, 2, function(x) tapply(x, iris.s, mean))&lt;br /&gt;&lt;br /&gt;           Sepal.Length Sepal.Width Petal.Length Petal.Width&lt;br /&gt;setosa            5.006       3.428        1.462       0.246&lt;br /&gt;versicolor        5.936       2.770        4.260       1.326&lt;br /&gt;virginica         6.588       2.974        5.552       2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;split and apply&lt;/h2&gt;Here we split the data first into subsets for each of the species and calculate then the mean for each column in the subset. The output is a &lt;code&gt;matrix&lt;/code&gt; again, but transposed.&lt;code&gt;&lt;pre&gt;sapply(split(iris.x, iris.s), function(x) apply(x, 2, mean))&lt;br /&gt;&lt;br /&gt;             setosa versicolor virginica&lt;br /&gt;Sepal.Length  5.006      5.936     6.588&lt;br /&gt;Sepal.Width   3.428      2.770     2.974&lt;br /&gt;Petal.Length  1.462      4.260     5.552&lt;br /&gt;Petal.Width   0.246      1.326     2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;ddply&lt;/h2&gt;Hadley Wickham's &lt;a href="http://cran.r-project.org/web/packages/plyr/index.html"&gt;&lt;code&gt;plyr&lt;/code&gt;&lt;/a&gt; package provides tools for splitting, applying and combining data. The function &lt;code&gt;ddply&lt;/code&gt; is similar to the by function, but it returns a &lt;code&gt;data.frame&lt;/code&gt; instead of a &lt;code&gt;by&lt;/code&gt; list and maintains the column for the species.  &lt;code&gt;&lt;pre&gt;library(plyr)&lt;br /&gt;ddply(iris, "Species", function(x){&lt;br /&gt;    y &lt;- subset(x, select= -Species)&lt;br /&gt;    apply(y, 2, mean)&lt;br /&gt;  })&lt;br /&gt;&lt;br /&gt;     Species Sepal.Length Sepal.Width Petal.Length Petal.Width&lt;br /&gt;1     setosa        5.006       3.428        1.462       0.246&lt;br /&gt;2 versicolor        5.936       2.770        4.260       1.326&lt;br /&gt;3  virginica        6.588       2.974        5.552       2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;b&gt;Addition:&lt;/b&gt; Sean mentions in the comments an alternative, using the &lt;code&gt;colMeans&lt;/code&gt; function, while Andrew reminds us of the &lt;a href="http://cran.r-project.org/web/packages/reshape/index.html"&gt;&lt;code&gt;reshape&lt;/code&gt;&lt;/a&gt; package with its functions &lt;code&gt;melt&lt;/code&gt; and &lt;code&gt;cast&lt;/code&gt;. &lt;code&gt;&lt;pre&gt;ddply(iris, "Species", function(x) colMeans(subset(x, select= -Species)))&lt;br /&gt;## or&lt;br /&gt;ddply(iris, "Species", colwise(mean)) &lt;br /&gt;## same output as above&lt;br /&gt;library(reshape)&lt;br /&gt;cast(melt(iris, id.vars='Species'),formula=Species ~ variable,mean)&lt;br /&gt;## same output as above&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;summaryBy&lt;/h2&gt;The &lt;code&gt;summaryBy&lt;/code&gt; function of the &lt;a href="http://cran.r-project.org/web/packages/doBy/"&gt;&lt;code&gt;doBy&lt;/code&gt;&lt;/a&gt; package by Søren Højsgaard and Ulrich Halekoh has a very intuitive interface, using formulas.&lt;code&gt;&lt;pre&gt;library(doBy)&lt;br /&gt;summaryBy(Sepal.Length + Sepal.Width + Petal.Length + Petal.Width ~ Species, data=iris, FUN=mean)&lt;br /&gt;&lt;br /&gt;     Species Sepal.Length.mean Sepal.Width.mean Petal.Length.mean Petal.Width.mean&lt;br /&gt;1     setosa             5.006            3.428             1.462            0.246&lt;br /&gt;2 versicolor             5.936            2.770             4.260            1.326&lt;br /&gt;3  virginica             6.588            2.974             5.552            2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;sqldf&lt;/h2&gt;If you are fluent in &lt;a href="http://en.wikipedia.org/wiki/SQL"&gt;SQL&lt;/a&gt;, then the &lt;a href="http://code.google.com/p/sqldf/"&gt;sqldf&lt;/a&gt; library by Gabor Grothendieck might be the one for you.&lt;code&gt;&lt;pre&gt;library(sqldf)&lt;br /&gt;sqldf("select Species, avg(Sepal_Length), avg(Sepal_Width), &lt;br /&gt;    avg(Petal_Length), avg(Petal_Width) from iris &lt;br /&gt;    group by Species")&lt;br /&gt;&lt;br /&gt;     Species avg(Sepal_Length) avg(Sepal_Width) avg(Petal_Length) avg(Petal_Width)&lt;br /&gt;1     setosa             5.006            3.428             1.462            0.246&lt;br /&gt;2 versicolor             5.936            2.770             4.260            1.326&lt;br /&gt;3  virginica             6.588            2.974             5.552            2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;data.table&lt;/h2&gt;The &lt;a href="http://datatable.r-forge.r-project.org/"&gt;&lt;code&gt;data.table&lt;/code&gt;&lt;/a&gt; package by  M Dowle, T Short and S Lianoglou is the real rock star to me. It provides an elegant and fast way to complete our task. The statement reads in plain English from right to left: take columns 1 to 4, split them by the factor in column "Species" and calculate on the &lt;b&gt;s&lt;/b&gt;ub &lt;b&gt;d&lt;/b&gt;ata (&lt;code&gt;.SD&lt;/code&gt;) the means. &lt;code&gt;&lt;pre&gt;library(data.table)&lt;br /&gt;iris.dt &lt;- data.table(iris)&lt;br /&gt;iris.dt[,lapply(.SD,mean),by="Species",.SDcols=1:4]&lt;br /&gt;&lt;br /&gt;        Species Sepal.Length Sepal.Width Petal.Length Petal.Width&lt;br /&gt;[1,]     setosa        5.006       3.428        1.462       0.246&lt;br /&gt;[2,] versicolor        5.936       2.770        4.260       1.326&lt;br /&gt;[3,]  virginica        6.588       2.974        5.552       2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;apply&lt;/h2&gt;I should mention that R provides the &lt;code&gt;iris&lt;/code&gt; data set also in an array form. The third dimension of the &lt;code&gt;iris3&lt;/code&gt; array holds the species information. Therefore we can use the &lt;code&gt;apply&lt;/code&gt; function again, we go down the third and then the second dimension to calculate the means.&lt;code&gt;&lt;pre&gt;apply(iris3, c(3,2), mean)&lt;br /&gt;&lt;br /&gt;           Sepal L. Sepal W. Petal L. Petal W.&lt;br /&gt;Setosa        5.006    3.428    1.462    0.246&lt;br /&gt;Versicolor    5.936    2.770    4.260    1.326&lt;br /&gt;Virginica     6.588    2.974    5.552    2.026&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;Many roads lead to Rome, and there are endless ways of explaining how to get there. I only showed a few I know of, and I am curious to hear yours. &lt;/p&gt;&lt;p&gt;As a matter of &lt;i&gt;courtesy&lt;/i&gt; I should mention the &lt;a href="http://cran.r-project.org/web/packages/unknownR/index.html"&gt;unknownR&lt;/a&gt; package by Matthew Dowle. It helps you to discover what you don't know that you don't know in R. Thus, it can help to build your R vocabulary.&lt;/p&gt;&lt;p&gt;Of course there is a key difference between R and English. R tells me right away when I make a mistake. Human readers are far more forgiving, but please do point out to me where I made mistakes. I am still hopeful that I can improve, but I need your help.&lt;/p&gt;&lt;h2&gt;R code&lt;/h2&gt;&lt;p&gt;The R code of the examples is available on &lt;a href="https://gist.github.com/1694442"&gt;github&lt;/a&gt;. For more examples on the apply family see also Neil Saunders' &lt;a href="http://nsaunders.wordpress.com/2010/08/20/a-brief-introduction-to-apply-in-r/"&gt;post&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-692533480759464987?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/692533480759464987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/01/say-it-in-r-with-by-apply-and-friends.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/692533480759464987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/692533480759464987'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/01/say-it-in-r-with-by-apply-and-friends.html' title='Say it in R with &quot;by&quot;, &quot;apply&quot; and friends'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-2325036165795095588</id><published>2012-01-17T22:16:00.000Z</published><updated>2012-02-04T14:08:47.327Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='credit rating'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='gvisGeoMap'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Credit rating by country</title><content type='html'>&lt;p&gt;The financial crisis has put a lot of pressure on countries'  long-term foreign currency credit ratings, with France recently being downgraded by S&amp;P. Wikipedia provides a &lt;a href="http://en.wikipedia.org/wiki/List_of_countries_by_credit_rating"&gt;list of countries by credit ratings&lt;/a&gt; as report by US rating agencies S&amp;P, Fitch, Moody's and Dagong, a Chinese rating agency.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So, was does the world look like today through the eyes of those rating agencies?&lt;br /&gt;&lt;/p&gt;We use the R packages &lt;a href="http://cran.r-project.org/web/packages/XML/"&gt;XML&lt;/a&gt; and &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; to read and display the data from Wikipedia with just a few lines. &lt;br /&gt;&lt;/p&gt;&lt;iframe src="http://dl.dropbox.com/u/7586336/blogger/CreditRatingByCountry17012012.html" height=1600 width=600 frameBorder="0"&gt;Loading ... &lt;/iframe&gt;&lt;br /&gt;The geo maps show the data as sourced from &lt;a href="http://en.wikipedia.org/wiki/List_of_countries_by_credit_rating"&gt;Wikipedia&lt;/a&gt; on 17 January 2012.&lt;br /&gt;&lt;p&gt;Is it a surprise that the views of the US and Chinese rating agencies differ on their home countries?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is the R code to replicate the geo maps:&lt;br /&gt;&lt;/p&gt;&lt;script src="https://gist.github.com/1629150.js?file=gistfile1.r"&gt;&lt;/script&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-2325036165795095588?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/2325036165795095588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/01/credit-rating-by-country.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/2325036165795095588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/2325036165795095588'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/01/credit-rating-by-country.html' title='Credit rating by country'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-4175388144238081245</id><published>2012-01-14T22:23:00.000Z</published><updated>2012-02-18T08:17:21.909Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Change management'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Managing change</title><content type='html'>&lt;h2&gt;Why the old and the new need to share time together&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;It takes time to appreciate the new. Even if the new is much better than the old. It is easy to forget when you yourself created the exciting new.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;At the end of August 2011 Google &lt;a href="http://buzz.blogger.com/2011/08/bloggers-fresh-new-look.html"&gt;announced&lt;/a&gt; a new &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt; interface. The &lt;a href="#new"&gt;new&lt;/a&gt; interface offered about the same functionality, but had a different look and feel. At first I was reluctant to use it. I just wanted to get my job done. I knew the &lt;a href="#old"&gt;old&lt;/a&gt; interface, so why disturbe me with something else which does just the same?&lt;br /&gt;&lt;/p&gt;&lt;a name="old"&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-a0sSGYHwGtM/TxFGUGPxSkI/AAAAAAAAAI0/e-883HFma1k/s1600/bloggerOldInterface.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="207" src="http://1.bp.blogspot.com/-a0sSGYHwGtM/TxFGUGPxSkI/AAAAAAAAAI0/e-883HFma1k/s320/bloggerOldInterface.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Old Blogger interface&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;I was relieved to see that there was a button, which allowed me to switch back to the old interface. So I continued to use the old interface, although occasionally Google would offer me the new interface after login. Eventually I started to play around with the new interface. At times when I was bored and looking for a good excuse to waste my time. After a while I started to like the new interface and used it more often and then I stopped switching back to the old when Google offered me the new on login. It appeared cleaner, more contemporary and organised than the old. Now I have switched completely to the new interface. After a four months transition period!&lt;br /&gt;&lt;/p&gt;&lt;a name="new"&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-g14f0sqZnM4/TxFGUT8QXCI/AAAAAAAAAI8/Qo9WkB77MX8/s1600/bloggerNewInterface.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="170" src="http://1.bp.blogspot.com/-g14f0sqZnM4/TxFGUT8QXCI/AAAAAAAAAI8/Qo9WkB77MX8/s320/bloggerNewInterface.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;New Blogger interface&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h2&gt;There is something to be learned from this experience&lt;br /&gt;&lt;/h2&gt;&lt;/p&gt;&lt;p&gt;Suppose you write analysis reports for others, e.g. colleagues, clients, friends, students, etc. and you have a new idea, which will make your report so much better. Maybe a better structure, a &lt;a href="http://dirk.eddelbuettel.com/cranberries/"&gt;new R package&lt;/a&gt;, a &lt;a href="http://addictedtor.free.fr/graphiques/"&gt;new plot&lt;/a&gt;, something really sophisticated. You are excited about this, you implement it and send your report out to your readers.  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then: No feedback.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Appreciating change takes time.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is a suggestion: Implement your next great idea to improve your analysis report. Just because it is so much fun and your are really excited about the new. However, continue to produce the old style report and send it out with the new. Hopefully your excitement will sparkle over to the reader. But acknowledge that not all of them will have time to embrace the new immediately. They read the report for a specific purpose, e.g. table X on page Y. Hence give your reader the space to find his own time to review the new report, eventually he will listen and hopefully switch. But do listen to the reader as well and value his feedback. Easier said than done. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;There is another aspect to it. Sending out the new with the old allows you to fail. You have a safety net. Some of your ideas might actually be not that great after all. I believe, we can only learn and succeed by making lots of small failures. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;PS: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Producing the old and the new at the same time is of course only possible, if you have a slick automated reporting system. You find plenty of ideas on &lt;a href="http://www.r-bloggers.com"&gt;R-Bloggers&lt;/a&gt;.&lt;br /&gt;&lt;li&gt; I wonder, what would have happened if the transition period between the old national coins and notes and the &lt;a href="http://en.wikipedia.org/wiki/History_of_the_euro"&gt;Euro&lt;/a&gt; would have been longer than &lt;a href="http://en.wikipedia.org/wiki/History_of_the_euro#Aftermath"&gt;two months in 2002&lt;/a&gt;?&lt;br /&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-4175388144238081245?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/4175388144238081245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/01/managing-change.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/4175388144238081245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/4175388144238081245'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/01/managing-change.html' title='Managing change'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-a0sSGYHwGtM/TxFGUGPxSkI/AAAAAAAAAI0/e-883HFma1k/s72-c/bloggerOldInterface.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-514336466267330451</id><published>2012-01-08T21:45:00.000Z</published><updated>2012-02-04T14:09:21.555Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='vignette'/><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='survey'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Feedback from vignette survey</title><content type='html'>&lt;p&gt;Many thanks to all who participated in the &lt;a href="http://lamages.blogspot.com/2012/01/survey-writing-package-vignette.html"&gt;survey about writing R package vignettes&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Following my &lt;a href="http://lamages.blogspot.com/2012/01/survey-writing-package-vignette.html"&gt;post&lt;/a&gt; last Thursday the responses came in &lt;a href="#VisitsPerHour"&gt;quickly&lt;/a&gt; in the evening and all day on Friday. Since Saturday the response rate has been decreasing constantly and I think it is time for a summary based on the 56 &lt;a href="http://www.google.com/fusiontables/DataSource?snapid=S353097iCbT"&gt;responses&lt;/a&gt; received. &lt;br /&gt;&lt;h3&gt;Summary - How to write a good vignette&lt;/h3&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#Length"&gt;Length&lt;/a&gt;:&lt;/b&gt; Trust yourself, but aim for about 20 pages.&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#Language"&gt;Language&lt;/a&gt;:&lt;/b&gt; Don't use language which assumes that the reader is an R and/or subject expert.&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#Structure"&gt;Structure&lt;/a&gt;:&lt;/b&gt; Include at least the following sections:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Examples&lt;br /&gt;&lt;li&gt; Introduction&lt;br /&gt;&lt;li&gt; Case studies&lt;br /&gt;&lt;li&gt; References&lt;br /&gt;&lt;/ul&gt;It would be nice to include also sections on: &lt;ul&gt;&lt;li&gt; Support &lt;br /&gt;&lt;li&gt; Motivation&lt;br /&gt;&lt;li&gt; Road map&lt;br /&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#Examples"&gt;Examples&lt;/a&gt;:&lt;/b&gt; Use lots of examples and don't repeat just the examples from the help pages.&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#GoodVignettes"&gt;Get inspiration from&lt;/a&gt;:&lt;/b&gt; &lt;a href="http://cran.r-project.org/web/packages/Rcpp/index.html"&gt;Rcpp&lt;/a&gt;, &lt;a href="http://www.jstatsoft.org/v21/i12"&gt;reshape&lt;/a&gt;, &lt;a href="http://www.jstatsoft.org/v40/i01"&gt;plyr&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/vegan/"&gt;vegan&lt;/a&gt;, and see &lt;a href="#GoodVignettes"&gt;below&lt;/a&gt; for more.&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#Secrets"&gt;Secrets of good vignettes&lt;/a&gt;:&lt;/b&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt; Provide an introduction with a clear purpose of the package.&lt;br /&gt;&lt;li&gt; Work with case studies, walk the reader through a task from start to finish.&lt;br /&gt;&lt;li&gt; Demonstrate the non-default arguments of the package functions, highlight why and when you want to change them.&lt;br /&gt;&lt;li&gt; Write briefly and concisely, but provide reference/footnotes to relevant literature and further help. &lt;br /&gt;&lt;li&gt; Provide dummy data to play with.&lt;br /&gt;&lt;li&gt; Discuss limitations.&lt;br /&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#WhatElse"&gt;What else&lt;/a&gt;:&lt;/b&gt; Potentially split the vignette into several documents, see &lt;a href="http://cran.r-project.org/web/packages/Rcpp/index.html"&gt;Rcpp&lt;/a&gt; for an example.&lt;br /&gt;&lt;/ul&gt;&lt;a name="AboutParticipants"&gt; &lt;h3&gt;About the survey participants &lt;/h3&gt;&lt;/a&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#Expertise"&gt;Expertise&lt;/a&gt;:&lt;/b&gt; Most participants seem to be medium to advanced R users. This is not a surprise - how else would they know about my &lt;a href="http://lamages.blogspot.com"&gt;blog&lt;/a&gt; or &lt;a href="http://www.r-bloggers.com"&gt;R-bloggers&lt;/a&gt;? Over 50% write their own functions and a further 45% create R packages.&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#VignetteUsage"&gt;Usage of vignettes&lt;/a&gt;:&lt;/b&gt; Over 75% use them often (based on ratings with 4/5 or 5/5). Thus, vignettes are worth wile writing. They are often the starting point to learn more about a new package.&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="#Pain"&gt;Writing experience&lt;/a&gt;:&lt;/b&gt; About 1/5 of the participants have written vignettes themselves and about another third have published papers, but not written vignettes or help pages.&lt;br /&gt;&lt;/ul&gt;&lt;/p&gt;&lt;h3&gt;Conclusions &lt;/h3&gt;&lt;p&gt;This was an interesting experiment and I am really pleased with the turn out. The survey was completed by a good mixture of  people, with varied experience and it showed the value of vignettes. &lt;/p&gt;&lt;p&gt;My big learning point is to focus more on the non-default arguments of the key package functions. I can see, that this really helps the reader to get a better understanding of the package and will help them to apply it better to their own problems and needs. &lt;/p&gt;&lt;p&gt;I was surprised by the relative high request for a &lt;i&gt;support&lt;/i&gt; section in the vignette. Over 60% say that a support section would be at least nice to have. Even 14% think it is required. I wonder, if this means just an email address for questions, a mailing list, or commercial support. I would very much appreciate your feedback, either via email or comments below the post. &lt;/p&gt;&lt;h3&gt;Charts &lt;/h3&gt;&lt;p&gt;&lt;a href="" name="VisitsPerHour"&gt; &lt;iframe ,="" height="320px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_visits_per_hour.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="VisitisPerDay"&gt; &lt;iframe ,="" height="320px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_visits_per_day.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt;  &lt;a href="" name="Length"&gt; &lt;iframe ,="" height="320px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_vignette_length.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="Language"&gt; &lt;iframe ,="" height="400px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_language.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="Structure"&gt; &lt;iframe ,="" height="525px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_structure.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="Examples"&gt; &lt;iframe ,="" height="450px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_examples.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="GoodVignettes"&gt; &lt;iframe ,="" height="730px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_good_vignettes.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="Secrets"&gt; &lt;iframe ,="" height="880px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_secrets.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="WhatElse"&gt; &lt;iframe ,="" height="280px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_what_else.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt;   &lt;/p&gt;&lt;h3&gt;About the survey participants &lt;/h3&gt;&lt;p&gt;&lt;a href="" name="Expertise"&gt; &lt;iframe ,="" height="420px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_expertise.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="VignetteUsage"&gt; &lt;iframe ,="" height="320px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_vignette_usage.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="Pain"&gt; &lt;iframe ,="" height="280px" src="http://dl.dropbox.com/u/7586336/blogger/Surveys/Vignette/Chart_pain.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt; &lt;/a&gt; &lt;a href="" name="Pain"&gt;&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: 12px;"&gt;R version 2.14.0 (2011-10-31) •&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://code.google.com/p/google-motion-charts-with-r/" style="color: #4d87c7; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-decoration: none;"&gt;googleVis-0.2.14&lt;/a&gt;&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: 12px;"&gt;&amp;nbsp;•&amp;nbsp;&lt;/span&gt;&lt;a href="http://code.google.com/apis/visualization/terms.html" style="color: #4d87c7; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-decoration: none;"&gt;Google Terms of Use&lt;/a&gt;&lt;span style="color: #444444; font-family: Arial, Helvetica, sans-serif; font-size: 12px;"&gt;&amp;nbsp;•&amp;nbsp;&lt;/span&gt;&lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery/columnchart.html#Data_Policy" style="color: #4d87c7; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-decoration: none;"&gt;Data Policy&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;R code&lt;/h3&gt;&lt;p&gt;You can access the R code for all charts via &lt;a href="https://gist.github.com/1579665"&gt;github&lt;/a&gt;. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-514336466267330451?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/514336466267330451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/01/feedback-from-vignette-survey.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/514336466267330451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/514336466267330451'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/01/feedback-from-vignette-survey.html' title='Feedback from vignette survey'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-2576002857688690187</id><published>2012-01-05T18:01:00.000Z</published><updated>2012-02-04T14:09:38.958Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='vignette'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='survey'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Survey: Writing package vignette</title><content type='html'>I am currently co-writing the vignette for the &lt;a href="http://code.google.com/p/chainladder/"&gt;ChainLadder&lt;/a&gt; package and wonder what I should be focusing on. I have co-written the &lt;a href="http://cran.r-project.org/web/packages/googleVis/vignettes/googleVis.pdf"&gt;vignette&lt;/a&gt; of the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; package in the past and based it purely and what I thought would work. So, this is an experiment to find out, if user feedback will help me to write a better vignette. Let's see how it develops. I will make the data available once I have at least 10 submission.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="https://docs.google.com/spreadsheet/embeddedform?formkey=dEw3akpQVU84UVV3VDFWaEZyWHBHTnc6MQ" width="600" height="2200" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;&lt;br /&gt;Thanks!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-2576002857688690187?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/2576002857688690187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2012/01/survey-writing-package-vignette.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/2576002857688690187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/2576002857688690187'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2012/01/survey-writing-package-vignette.html' title='Survey: Writing package vignette'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-1465909928990650881</id><published>2011-12-31T14:22:00.001Z</published><updated>2012-02-04T14:09:54.153Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='find and replace'/><category scheme='http://www.blogger.com/atom/ns#' term='Operating System'/><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='replace'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Is R turning into an operating system?</title><content type='html'>&lt;p&gt;Over the years I convinced my colleagues and IT guys that &lt;a href="http://lamages.blogspot.com/2011/10/using-sweave-with-xelatex.html"&gt;LaTeX/XeLaTeX&lt;/a&gt; is the way forward to produce lots of customer reports with individual data, charts, analysis and text. &lt;a href="http://lamages.blogspot.com/2011/09/r-and-insurance.html"&gt;Success&lt;/a&gt;! But of course the operating system in the office is still MS Windows. &lt;/p&gt;&lt;p&gt;With my background in Solaris/Linux/Mac OSX I am still a little bit lost in the Windows world, when I have to do such simple tasks as finding and replacing a string in lots of files. Apparently the acronym is &lt;a href="http://sourceforge.net/projects/fart-it/"&gt;FART&lt;/a&gt; (find and replace text). &lt;/p&gt;&lt;p&gt;So, what to you do without your beloved command line tools and admin rights? Eventually you start using R instead. So here is my little work-around for replacing "Merry Christmas" with "Happy New Year" in lots of files: &lt;/p&gt;&lt;p&gt;&lt;code&gt; &lt;pre&gt;for( f in filenames ){&lt;br /&gt;&lt;br /&gt;  x &lt;- readLines(f)&lt;br /&gt;  y &lt;- gsub( "Merry Christmas", "Happy New Year", x )&lt;br /&gt;  cat(y, file=f, sep="\n")&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;You can find a complete self-contained example on &lt;a href="https://gist.github.com/1544009"&gt;github&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Of course R is not an operating system, but yet it can complement it well, if your other resources are limited.&lt;/p&gt;&lt;p&gt;Last but not least: &lt;b&gt;Happy New Year!&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-1465909928990650881?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/1465909928990650881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/12/is-r-turning-into-operating-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1465909928990650881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1465909928990650881'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/12/is-r-turning-into-operating-system.html' title='Is R turning into an operating system?'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-1077154059540678335</id><published>2011-12-23T10:06:00.004Z</published><updated>2012-02-04T07:32:19.936Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='Geo Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='gvisGeoChart'/><category scheme='http://www.blogger.com/atom/ns#' term='gvisSteppedAreaChart'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>googleVis 0.2.13: new stepped area chart and improved geo charts</title><content type='html'>&lt;p&gt;On 7th December Google published a &lt;a href="http://code.google.com/apis/chart/interactive/docs/release_notes.html#v07122011"&gt;new version&lt;/a&gt; of their Visualisation API. The new version adds a new chart type: &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery/steppedareachart.html"&gt;Stepped Area Chart&lt;/a&gt; and provides improvements to &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery/geochart.html"&gt;Geo Chart&lt;/a&gt;. Now Geo Chart has similar functionality to &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery/geomap.html"&gt;Geo Map&lt;/a&gt;, but while Geo Map requires Flash, Geo Chart doesn't, as it renders SVG/VML graphics. So it also works on your iOS devices. &lt;/p&gt;&lt;p&gt;These new features have been added to the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; &lt;a href="http://www.r-project.org"&gt;R&lt;/a&gt; package in version 0.2.13, which went live on &lt;a href="http://cran.r-project.org/web/packages/googleVis/"&gt;CRAN&lt;/a&gt; a few days ago. &lt;/p&gt;&lt;p&gt;The function &lt;code&gt;&lt;a href="http://code.google.com/p/google-motion-charts-with-r/wiki/GadgetExamples#Stepped_Area_Chart"&gt;gvisSteppedAreaChart&lt;/a&gt;&lt;/code&gt; works very much in the same way as &lt;code&gt;&lt;a href="http://code.google.com/p/google-motion-charts-with-r/wiki/GadgetExamples#Area_Chart"&gt;gvisAreaChart&lt;/a&gt;&lt;/code&gt;. Here is a little example: &lt;/p&gt;&lt;iframe width=450 height=220 src="http://dl.dropbox.com/u/7586336/blogger/steppedareachart.html"&gt;&lt;/iframe&gt; &lt;code&gt; &lt;pre&gt;library(googleVis)&lt;br /&gt;df &lt;- data.frame(country=c("US", "GB", "BR"), &lt;br /&gt;                 val1=c(1,3,4), val2=c(23,12,32))&lt;br /&gt;SteppedArea &lt;- gvisSteppedAreaChart(df, xvar="country", &lt;br /&gt;                                        yvar=c("val1", "val2"),&lt;br /&gt;                           options=list(isStacked=TRUE, &lt;br /&gt;                                        width=400, height=150))&lt;br /&gt;plot(SteppedArea2)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;p&gt;The interface to &lt;code&gt;&lt;a href="http://code.google.com/p/google-motion-charts-with-r/wiki/GadgetExamples#Geo_Chart"&gt;gvisGeoChart&lt;/a&gt;&lt;/code&gt; changed slightly to take into account the new version of Geo Chart by Google. The argument &lt;code&gt;numvar&lt;/code&gt; has been renamed to &lt;code&gt;colorvar&lt;/code&gt; and a new argument &lt;code&gt;sizevar&lt;/code&gt; has been added. This allows you to set the size and colour of the bubbles in &lt;code&gt;displayMode='markers'&lt;/code&gt; depending on columns in your data frame. Further, you can set far more options than you could before, in particular you can set not only the &lt;code&gt;region&lt;/code&gt;, but also the &lt;code&gt;resolution&lt;/code&gt; of your map. Although more granular maps are not available for all countries, for more details see the &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery/geochart.html#Configuration_Options"&gt;Google documentation&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Here are two examples, plotting the test data &lt;code&gt;CityPopularity&lt;/code&gt; with a Geo Chart.The first plot shows the popularity of New York, Boston, Miami, Chicago, Los Angeles and Houston on the US map, with the resolution set to &lt;code&gt;'metros'&lt;/code&gt; and region set to &lt;code&gt;'US'&lt;/code&gt;. The Google Map API makes the correct assumption about which cities we mean.&lt;/p&gt;&lt;iframe width="600px" height="400px" src="http://dl.dropbox.com/u/7586336/blogger/geocharts_us_metros.html"&gt;&lt;/iframe&gt;&lt;code&gt;&lt;pre&gt;library(googleVis&gt; ## requires googleVis version &gt;= 0.2.13&lt;br /&gt;gcus &lt;- gvisGeoChart(CityPopularity, &lt;br /&gt;        locationvar="City", colorvar="Popularity", &lt;br /&gt;          options=list(displayMode="markers", &lt;br /&gt;                       region="US", resolution="metros"), &lt;br /&gt;         chartid="GeoChart_US")&lt;br /&gt;plot(gcus)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;p&gt;In the second example we set the region to &lt;code&gt;'US-TX'&lt;/code&gt;, therefore Google will look for cities with the same names in Texas. And what a surprise, there are cities/towns named Chicago, Los Angeles, Miami, Boston and of course Houston in Texas.&lt;/p&gt;&lt;iframe width="600px" height="400px" src="http://dl.dropbox.com/u/7586336/blogger/geocharts_tx_metros.html"&gt;&lt;/iframe&gt;&lt;code&gt;&lt;pre&gt;gctx &lt;- gvisGeoChart(CityPopularity, &lt;br /&gt;        locationvar="City", colorvar="Popularity", &lt;br /&gt;          options=list(displayMode="markers", &lt;br /&gt;                       region="US-TX", resolution="metros"), &lt;br /&gt;         chartid="GeoChart_TX")&lt;br /&gt;plot(gctx)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;p&gt;With the new version of the Visualisation API Google introduced also the concept of &lt;a href="http://code.google.com/apis/chart/interactive/docs/roles.html"&gt;DataTable Roles&lt;/a&gt;. This is an interesting idea, as it allows you to add context to the data, similar to the approach used with &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html"&gt;annotated time lines&lt;/a&gt;. Google classifies the DataTable Roles still experimental, but it is a space to watch and ideas on how this could be translated into R will be much appreciated.&lt;/p&gt;&lt;p&gt;And now the news of the googleVis package since version 0.2.10:&lt;/p&gt;&lt;pre&gt;Version 0.2.13 [2011-12-19]&lt;br /&gt;==========================&lt;br /&gt;&lt;br /&gt;Changes&lt;br /&gt;&lt;br /&gt;    o The list of arguments for gvisGeoChart changed:&lt;br /&gt;      - the argument 'numvar' has been renamed to 'colorvar' to&lt;br /&gt;        reflect the updated Google API. Additionally gvisGeoChart&lt;br /&gt;     gained a new argument 'sizevar'.&lt;br /&gt;    o Updated googleVis vignette with a section on using googleVis &lt;br /&gt;      output in presentations  &lt;br /&gt;    o Renamed demo EventListner to EventListener&lt;br /&gt;&lt;br /&gt;NEW FEATURES&lt;br /&gt;&lt;br /&gt;    o Google published a new version of their Visualisation API on 7&lt;br /&gt;      December 2011. Some of the new features have been implemented&lt;br /&gt;      into googleVis already:&lt;br /&gt;      - New stepped area chart function gvisSteppedAreaChart&lt;br /&gt;      - gvisGeoChart has a new marker mode, similar to the mode in&lt;br /&gt;       gvisGeoMap. See example(gvisGeoChart) for the new&lt;br /&gt;        functionalities.&lt;br /&gt;&lt;br /&gt;Version 0.2.12 [2011-12-07]&lt;br /&gt;==========================&lt;br /&gt;&lt;br /&gt;Bug Fixes&lt;br /&gt;&lt;br /&gt;    o gvisMotionChart didn't display data with special characters,&lt;br /&gt;      e.g. spaces, &amp;, %, in column names correctly. &lt;br /&gt;      Thanks to Alexander Holcroft for reporting this issue.&lt;br /&gt;&lt;br /&gt;Version 0.2.11 [2011-11-16]&lt;br /&gt;==========================&lt;br /&gt;&lt;br /&gt;Changes&lt;br /&gt;&lt;br /&gt;   o Updated vignette and documentation with instructions on changing&lt;br /&gt;     the Flash security settings to display Flash charts locally. &lt;br /&gt;     Thanks to Tony Breyal.&lt;br /&gt;   o New example to plot weekly data with gvisMotionChart&lt;br /&gt;   o Removed local copies of gadget files to reduce package file&lt;br /&gt;     size. A local copy of the R script to generate the original gadget&lt;br /&gt;     files is still included in inst/gadgets &lt;br /&gt;&lt;br /&gt;Version 0.2.10 [2011-09-24]&lt;br /&gt;==========================&lt;br /&gt;&lt;br /&gt;Changes&lt;br /&gt;&lt;br /&gt;   o Updated section 'Using googleVis output with Google Sites,&lt;br /&gt;     Blogger, etc.' vignette&lt;br /&gt;&lt;br /&gt;   o Updated example for gvisMotionChart, showing how the initial&lt;br /&gt;     chart setting can be changed, e.g to display a line chart.&lt;br /&gt;&lt;br /&gt;   o New example for gvisAnnotatedTimeLine, showing how to shade&lt;br /&gt;     areas. Thanks to Mike Silberbauer for providing the initial code.    &lt;br /&gt;   &lt;br /&gt;NEW FEATURES&lt;br /&gt; &lt;br /&gt;    o New demo WorldBank. It demonstrates how country level data can&lt;br /&gt;      be accessed from the World Bank via their API and displayed with a&lt;br /&gt;      Motion Chart. Inspired by Google's Public Data Explorer, see&lt;br /&gt;      http://www.google.com/publicdata/home&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-1077154059540678335?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/1077154059540678335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/12/googlevis-0213-new-stepped-area-chart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1077154059540678335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1077154059540678335'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/12/googlevis-0213-new-stepped-area-chart.html' title='googleVis 0.2.13: new stepped area chart and improved geo charts'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-8776992871298292140</id><published>2011-12-13T22:41:00.006Z</published><updated>2012-02-27T07:31:51.784Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Data'/><category scheme='http://www.blogger.com/atom/ns#' term='EU'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Guardian'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Data is the new gold</title><content type='html'>We need more data journalism. How else will we find the nuggets of data and information worth reading? &lt;br /&gt;&lt;br /&gt;Life should become easier for data journalists, as the &lt;a href="http://www.guardian.co.uk/news/datablog"&gt;Guardian&lt;/a&gt;, one of the data journalism  pioneers, points out in this &lt;a href="http://gu.com/p/344am"&gt;article&lt;/a&gt; about the new open data initiative of the European Union (EU). The aims of the EU's open data strategy are bold. Data is seen as the new gold of the digital age. The EU is estimating that public data is already generating economic value of €32bn each year, with growth potential to €70bn, if more data will be made available. Here is the link to the press statement, which I highly recommend reading: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://europa.eu/rapid/pressReleasesAction.do?reference=SPEECH/11/872&amp;amp;format=HTML&amp;amp;aged=0&amp;amp;language=EN&amp;amp;guiLanguage=en"&gt;EUROPA - Press Releases - Neelie Kroes Vice-President of the European Commission responsible for the Digital Agenda, Data is the new gold, Opening Remarks, Press Conference on Open Data Strategy Brussels, 12th December 2011&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/MlcFKPyiRuw" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I am particularly impressed that the EU even aims to harmonise the way data will be published by the various bodies. We know that working with data, open or proprietary, often means spending a lot of time on cleaning, reshaping and transforming it, in order to join it with other sources and to make sense out of it.&lt;br /&gt;&lt;br /&gt;Data standards would really help in this respect. And the EU is pushing this as well. I can observe this in the insurance industry already, where new European regulatory requirements (&lt;a href="http://www.fsa.gov.uk/pages/About/What/International/solvency/index.shtml"&gt;Solvency II&lt;/a&gt;) force companies to increase their data management capabilities. This is often a huge investment and has to be seen as a long term project. &lt;br /&gt;&lt;br /&gt;Although the press statement doesn't mention anything about open source software projects, I think that they are essential for unfolding the full potential of open data. &lt;br /&gt;&lt;br /&gt;Open source projects like &lt;a href="http://www,r-project.org"&gt;R&lt;/a&gt; provide a platform to share new ideas. I'd say that R, but equally other languages as well, provide interfaces between minds and hands. Packages, libraries, etc. make it possible to spread ideas and knowledge. Having access to scientific papers is great but being able to test the ideas in practice accelerates the time it takes to embed new developments from academia into the business world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-8776992871298292140?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/8776992871298292140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/12/data-is-new-gold.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8776992871298292140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8776992871298292140'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/12/data-is-new-gold.html' title='Data is the new gold'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/MlcFKPyiRuw/default.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-1976030162286897456</id><published>2011-12-10T08:54:00.001Z</published><updated>2012-02-04T07:32:42.897Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='LondonR'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>LondonR, 6 December 2011</title><content type='html'>The &lt;a href="http://www.lononr.org/"&gt;London R&lt;/a&gt; user group met again last Wednesday at the &lt;a href="http://maps.google.de/maps/place?q=Shooting+star+london&amp;amp;hl=de&amp;amp;cid=8784727989432907047"&gt;Shooting Star pub&lt;/a&gt;. And it was busy. More than 80 people had turned up. Was it the free beer and food, sponsored by &lt;a href="http://www.mango-solutions.com/"&gt;Mango&lt;/a&gt;, which attracted the folks or the speakers? Or the venue? &lt;a href="http://www.cerebralmastication.com/"&gt;James Long&lt;/a&gt;, who organises the Chicago R user group meetings and who gave gave the first talk that night, noted that to his knowledge only the London and Chicago R users would meet in a pub.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PEoIa5Ft7Oo/TuMV7q8QQDI/AAAAAAAAAFc/jeqnKKE9FF0/s1600/shootingstar.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-PEoIa5Ft7Oo/TuMV7q8QQDI/AAAAAAAAAFc/jeqnKKE9FF0/s320/shootingstar.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;However, it were the speakers and their talks which attracted me: &lt;br /&gt;&lt;ul&gt;&lt;li&gt; James Long: &lt;a href="http://www.londonr.org/Presentations/segue-presentation-LondonRUG%20(1).ppt" target="_blank"&gt;Easy Parallel Stochastic Simulations using Amazon's EC2 &amp;amp; Segue&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Chibisi Chima-Okereke: &lt;a href="http://www.londonr.org/Presentations/RInActuarialAnalysis.pptx"&gt;Actuarial Pricing Using General Linear Models In R&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Richard Saldanha: &lt;a href="http://www.londonr.org/Presentations/Practical_Optimization.pdf"&gt;Practical Optimisation&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;You will notice that this London R meeting had a theme around risk pricing. James talked about reinsurance pricing using R in the cloud, while Chibisi focused more on personal lines insurance with generalised linear models and Richard came from the angle of investment management and portfolio optimisation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-1976030162286897456?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/1976030162286897456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/12/londonr-6-december-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1976030162286897456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1976030162286897456'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/12/londonr-6-december-2011.html' title='LondonR, 6 December 2011'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-PEoIa5Ft7Oo/TuMV7q8QQDI/AAAAAAAAAFc/jeqnKKE9FF0/s72-c/shootingstar.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-8489887844039102662</id><published>2011-12-01T17:40:00.003Z</published><updated>2012-02-04T07:33:11.238Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='fit distribution'/><category scheme='http://www.blogger.com/atom/ns#' term='fitdist'/><category scheme='http://www.blogger.com/atom/ns#' term='fitdistrplus'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='fitdistr'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Fitting distributions with R</title><content type='html'>Fitting distribution with R is something I have to do once in a while.&lt;br /&gt;&lt;br /&gt;A good starting point to learn more about distribution fitting with R is Vito Ricci's &lt;a href="http://cran.r-project.org/doc/contrib/Ricci-distributions-en.pdf"&gt;tutorial on CRAN&lt;/a&gt;. I also find the vignettes&amp;nbsp;of the &lt;a href="http://cran.r-project.org/web/packages/actuar/index.html"&gt;actuar&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://cran.r-project.org/web/packages/fitdistrplus/index.html"&gt;fitdistrplus&lt;/a&gt; package a good read. I haven't looked into the recently published &lt;a href="http://www.amazon.com/gp/product/1584887117/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=chrprobboo-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399373&amp;amp;creativeASIN=1584887117"&gt;Handbook of fitting statistical distributions with R&lt;/a&gt;, by Z. Karian and E.J. Dudewicz, but it might be worthwhile in certain cases, see Xi'An's  &lt;a href="http://xianblog.wordpress.com/2011/09/05/a-misleading-title/"&gt;review&lt;/a&gt;. A more comprehensive overview of the various R packages is given by the &lt;a href="http://cran.r-project.org/web/views/Distributions.html"&gt;CRAN Task View: Probability Distributions&lt;/a&gt;, maintained by&amp;nbsp;&lt;a href="http://dutangc.free.fr/"&gt;Christophe Dutang&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;How do you decide which distribution might be a good starting point?&lt;br /&gt;&lt;br /&gt;I came across the paper&amp;nbsp;&lt;a href="http://www.stern.nyu.edu/~adamodar/pdfiles/papers/probabilistic.pdf"&gt;&lt;i&gt;Probabilistic approaches to risk&lt;/i&gt;&lt;/a&gt; by &lt;a href="http://pages.stern.nyu.edu/~adamodar/"&gt;Aswath Damodaran&lt;/a&gt;. In Appendix 6.1 Aswath discusses the key characteristics of the most common distributions and in Figure 6A.15 he&amp;nbsp;provides us with a decision tree diagram for choosing a distribution:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-bottom: 0.5em; margin-left: auto; margin-right: auto; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="http://2.bp.blogspot.com/-SpjgitfNMb0/TteevRR_Y2I/AAAAAAAAAFQ/IZgd32z2AI8/s1600/distributions.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="155" src="http://2.bp.blogspot.com/-SpjgitfNMb0/TteevRR_Y2I/AAAAAAAAAFQ/IZgd32z2AI8/s320/distributions.png" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="font-size: 13px; padding-top: 4px; text-align: center;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Figure 6A.15 from&amp;nbsp;&lt;a href="http://www.stern.nyu.edu/~adamodar/pdfiles/papers/probabilistic.pdf"&gt;Probabilistic approaches to risk&lt;/a&gt;&amp;nbsp;by&amp;nbsp;&lt;a href="http://pages.stern.nyu.edu/~adamodar/"&gt;Aswath Damodaran&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;a href="http://www.stern.nyu.edu/~adamodar/pdfiles/papers/probabilistic.pdf"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cerebralmastication.com/"&gt;JD Long&lt;/a&gt; points in his blog entry about &lt;a href="http://www.cerebralmastication.com/2011/05/fitting-distribution-x-to-data-from-distribution-y/"&gt;Fitting distribution X to data from distribution Y &lt;/a&gt;to the &lt;a href="http://www.johndcook.com/distribution_chart.html"&gt;Clickable diagram of distribution relationships&lt;/a&gt; by &lt;a href="http://www.johndcook.com/"&gt;John Cook&lt;/a&gt;. With those two charts I find it not too difficult anymore to find a reasonable starting point.&lt;br /&gt;&lt;br /&gt;Once I have decided which distribution might be a good fit I start usually with the &lt;code&gt;fitdistr&lt;/code&gt; function of the &lt;a href="http://cran.at.r-project.org/web/packages/MASS/index.html"&gt;MASS&lt;/a&gt;&amp;nbsp;package. However, since I discovered the&amp;nbsp;&lt;a href="http://cran.r-project.org/web/packages/fitdistrplus/index.html"&gt;fitdistrplus&lt;/a&gt; package I have become very fond of the &lt;code&gt;fitdist&lt;/code&gt; function, as it&amp;nbsp;comes with a wonderful plot method.&amp;nbsp;It plots an empirical histogram with a theoretical density curve, a QQ and PP-plot and the empirical cumulative distribution with the theoretical distribution. Further, the package provides also goodness of fit tests via &lt;code&gt;gofstat.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Suppose you have only 50 data points, of which you believe that they follow a &lt;a href="http://en.wikipedia.org/wiki/Log-normal_distribution"&gt;log-normal&lt;/a&gt; distribution. How much variance can we expect? Well, let's experiment.&amp;nbsp;We draw 50 random numbers from a log-normal distribution, fit the distribution to the sample data and repeat the exercise 50 times and plot the results using the plot function of the fitdistrplus package.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://dl.dropbox.com/u/7586336/blogger/distribution-animation.gif" /&gt;&lt;/div&gt;&lt;br /&gt;You will notice quite a big variance in the results. For some samples other distributions, e.g. logistic, could provide a better fit. You might argue that 50 data points is not a lot of data, but in real life it often is, and hence this little example already shows us that fitting a distribution to data is not just about applying a algorithm, but requires a sound understanding of the process which generated the data as well.&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1429933.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-8489887844039102662?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/8489887844039102662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/12/fitting-distributions-with-r.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8489887844039102662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8489887844039102662'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/12/fitting-distributions-with-r.html' title='Fitting distributions with R'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-SpjgitfNMb0/TteevRR_Y2I/AAAAAAAAAFQ/IZgd32z2AI8/s72-c/distributions.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-9108370872084175369</id><published>2011-11-20T18:39:00.002Z</published><updated>2012-02-04T07:33:34.058Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='interactive'/><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='deck.js'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Interactive presentations with deck.js</title><content type='html'>Data analysis is often an iterative and interactive process. However, when I present about this subject, I feel often limited by the presentation software I use. It doesn't matter if I use LaTeX/PDF, PowerPoint or Keynote. In all cases it is either very difficult or impossible to include interactive charts, such as Flash or SVG charts. As a result I have to switch between various applications during the talk. This can be fun, but quite often it is not.&lt;br /&gt;&lt;br /&gt;The other day I came across a presentation by &lt;a href="http://christophergandrud.blogspot.com/2011/10/world-bank-visualizations-with.html"&gt;Christopher Gandrud&lt;/a&gt;. Christopher had used &lt;a href="http://imakewebthings.github.com/deck.js/"&gt;deck.js&lt;/a&gt;, a JavaScript library for building HTML presentations by &lt;a href="http://imakewebthings.com/"&gt;Caleb Troughton&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This looked like an interesting approach to me and fortunately the learning curve was not too steep, although I am by no means an html or JavaScript expert. So I created my first deck.js presentation based on the content of previous &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; presentations. For the first time I can embed videos, Flash and SVG charts without using lots of different apps. I am actually quite pleased by the result, see here: &lt;a href="http://dl.dropbox.com/u/7586336/blogger/deck.js/googleVis/index.html"&gt;Getting started with googleVis&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://dl.dropbox.com/u/7586336/blogger/deck.js/googleVis/index.html"&gt;&lt;img border="0" height="95" src="http://3.bp.blogspot.com/-pTK-7dtJAIc/Tske-UnmPdI/AAAAAAAAAFE/0twerK3Km5s/s320/GettingStartedWithGoogleVis.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Now imagine a presentation hosted on a server with R installed! You could combine your slides with R using one of the following packages &lt;a href="http://cran.r-project.org/web/packages/R.rsp/index.html"&gt;R.rsp&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/brew/index.html"&gt;brew&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/Rook/index.html"&gt;Rook&lt;/a&gt;, etc and run live demos, without opening a console.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-9108370872084175369?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/9108370872084175369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/11/interactive-presentations.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/9108370872084175369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/9108370872084175369'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/11/interactive-presentations.html' title='Interactive presentations with deck.js'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-pTK-7dtJAIc/Tske-UnmPdI/AAAAAAAAAFE/0twerK3Km5s/s72-c/GettingStartedWithGoogleVis.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-3458536802189219514</id><published>2011-11-12T21:55:00.015Z</published><updated>2012-02-04T14:10:30.883Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Insurance'/><category scheme='http://www.blogger.com/atom/ns#' term='reserving'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='ChainLadder'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Stochastic reserving with R: ChainLadder 0.1.5-1 released</title><content type='html'>Today we published version 0.1.5-1 of the &lt;a href="http://code.google.com/p/chainladder/"&gt;&lt;code&gt;ChainLadder&lt;/code&gt;&lt;/a&gt; package for &lt;a href="http://www.r-project.org/"&gt;R&lt;/a&gt;. It provides methods which are typically used in insurance claims reserving to forecast future claims payments.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0dYQffHdShk/Tr7mZibyQGI/AAAAAAAAAEo/hjb7XhrO_Mc/s1600/MackLattice.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-0dYQffHdShk/Tr7mZibyQGI/AAAAAAAAAEo/hjb7XhrO_Mc/s320/MackLattice.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Claims development and chain-ladder forecast of the RAA data set using the Mack method&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The package started out of presentations given at the Stochastic Reserving Seminar at the Institute of Actuaries in 2007, 2008 and &lt;a href="http://chainladder.googlecode.com/files/ChainLadder_Markus_20010Nov10.pdf"&gt;2010&lt;/a&gt;, followed by talks at CAS meetings in &lt;a href="http://chainladder.googlecode.com/files/Introduction_to_R_20081203.pdf"&gt;2008&lt;/a&gt; and &lt;a href="http://chainladder.googlecode.com/files/CAS-Spring-Meeting-2010-C21.pdf"&gt;2010&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Initially the package came with implementations of the Mack-, Munich- and Bootstrap Chain-Ladder methods. Since version 0.1.3-3 it also provides general multivariate chain ladder models by &lt;a href="http://www.actuaryzhang.com/"&gt;Wayne Zhang&lt;/a&gt;.&amp;nbsp;Version 0.1.4-0 introduced new functions on loss development factor fitting and Cape Cod by &lt;a href="http://trinostics.com/"&gt;Daniel Murphy&lt;/a&gt; following a paper by David Clark. Version 0.1.5-0 has added loss reserving models within the generalized linear model framework following a paper by England P. and Verrall R. (1999) implemented by Wayne Zhang. &lt;br /&gt;&lt;br /&gt;For more details see the project web site: &lt;a href="http://code.google.com/p/chainladder/"&gt;http://code.google.com/p/chainladder/&lt;/a&gt; and an early blog entry about &lt;a href="http://lamages.blogspot.com/2011/09/r-and-insurance.html"&gt;R in the insurance industry&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Changes in version 0.1.5-1:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Internal changes to &lt;code&gt;plot.MackChainLadder&lt;/code&gt; to pass new checks introduced by R 2.14.0.&lt;br /&gt;&lt;li&gt; Commented out unnecessary creation of 'io' matrix in &lt;code&gt;ClarkCapeCod&lt;/code&gt; function. Allows for analysis of very large matrices for &lt;code&gt;CapeCod&lt;/code&gt; without running out of RAM. 'io' matrix is an integral part of &lt;code&gt;ClarkLDF&lt;/code&gt;, and so remains in that function.&lt;br /&gt;&lt;li&gt; &lt;code&gt;plot.clark&lt;/code&gt; method&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Removed "conclusion" stated in &lt;code&gt;QQplot&lt;/code&gt; of clark methods.&lt;br /&gt;&lt;li&gt; Restore 'par' settings upon exit&lt;br /&gt;&lt;li&gt; Slight change to the title&lt;br /&gt;&lt;/ul&gt;&lt;li&gt; Reduced the minimum 'theta' boundary for weibull growth function&lt;br /&gt;&lt;li&gt; Added warnings to &lt;code&gt;as.triangle&lt;/code&gt; if origin or dev. period are not numeric&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;Here is a little example using the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; package to display the RAA claims development triangle:  &lt;/p&gt;&lt;script type="text/javascript" src="http://www.google.com/jsapi"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt;// jsData function gvisDataLineChartID4c1b4a94 (){  var data = new google.visualization.DataTable();  var datajson =[ [ "1",5012,106,3410,5655,1092,1513,557,1351,3133,2063 ],[ "2",8269,4285,8992,11555,9565,6445,4020,6947,5395,null ],[ "3",10907,5396,13873,15766,15836,11702,10946,13112,null,null ],[ "4",11805,10666,16141,21266,22169,12935,12314,null,null,null ],[ "5",13539,13782,18735,23425,25955,15852,null,null,null,null ],[ "6",16181,15599,22214,26083,26180,null,null,null,null,null ],[ "7",18009,15496,22863,27067,null,null,null,null,null,null ],[ "8",18608,16169,23466,null,null,null,null,null,null,null ],[ "9",18662,16704,null,null,null,null,null,null,null,null ],[ "10",18834,null,null,null,null,null,null,null,null,null ] ];data.addColumn('string','dev');data.addColumn('number','1981');data.addColumn('number','1982');data.addColumn('number','1983');data.addColumn('number','1984');data.addColumn('number','1985');data.addColumn('number','1986');data.addColumn('number','1987');data.addColumn('number','1988');data.addColumn('number','1989');data.addColumn('number','1990');data.addRows(datajson);return(data);}// jsDrawChartfunction drawChartLineChartID4c1b4a94() {  var data = gvisDataLineChartID4c1b4a94();  var options = {};options["allowHtml"] = true;options["hAxis"] = {title:'dev. period'};    chartLineChartID4c1b4a94 = new google.visualization.ChartWrapper({         dataTable: data,                chartType: 'LineChart',         containerId: 'LineChartID4c1b4a94',         options: options    });    chartLineChartID4c1b4a94.draw();    }  function openEditorLineChartID4c1b4a94() {      var editor = new google.visualization.ChartEditor();      google.visualization.events.addListener(editor, 'ok',        function() {           chartLineChartID4c1b4a94 = editor.getChartWrapper();            chartLineChartID4c1b4a94.draw(document.getElementById('LineChartID4c1b4a94'));       });       editor.openDialog(chartLineChartID4c1b4a94);  }    // jsDisplayChart function displayChartLineChartID4c1b4a94(){  google.load("visualization", "1", { packages:["charteditor"] });   google.setOnLoadCallback(drawChartLineChartID4c1b4a94);}// jsChart displayChartLineChartID4c1b4a94()&lt;!-- jsFooter --&gt;  //--&gt;&lt;/script&gt;   &lt;!-- divChart --&gt; &lt;input type='button' onclick='openEditorLineChartID4c1b4a94()' value='Edit me!'&gt;   &lt;div id="LineChartID4c1b4a94"  style="width: 600px; height: 500px;"&gt;&lt;/div&gt;&lt;pre&gt;library(ChainLadder)&lt;br /&gt;library(googleVis)&lt;br /&gt;data(RAA) # example data set of the ChainLadder package&lt;br /&gt;class(RAA) &lt;- "matrix" # change the class from triangle to matrix&lt;br /&gt;df &lt;- as.data.frame(t(RAA)) # coerce triangle into a data.frame&lt;br /&gt;names(df) &lt;- 1981 : 1990&lt;br /&gt;df$dev &lt;-  1:10&lt;br /&gt;plot(gvisLineChart(df, "dev", options=list(gvis.editor="Edit me!", hAxis.title="dev. period")))&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-3458536802189219514?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/3458536802189219514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/11/stochastic-reserving-with-r-chainladder.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/3458536802189219514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/3458536802189219514'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/11/stochastic-reserving-with-r-chainladder.html' title='Stochastic reserving with R: ChainLadder 0.1.5-1 released'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-0dYQffHdShk/Tr7mZibyQGI/AAAAAAAAAEo/hjb7XhrO_Mc/s72-c/MackLattice.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-5571527520704311599</id><published>2011-10-30T08:00:00.004Z</published><updated>2012-02-04T07:33:59.446Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='iBook G4'/><category scheme='http://www.blogger.com/atom/ns#' term='R-2.14.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Tiger'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS 10.4.11'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Installing R 2.14.0 on an iBook G4 running Mac OS 10.4.11</title><content type='html'>My &lt;a href="http://support.apple.com/kb/sp89"&gt;12" iBook G4&lt;/a&gt; is celebrating its 8th birthday today! Time for a little present. How about R 2.14.0?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zc71GupCMY0/Tqw6Q3e-CmI/AAAAAAAAAEA/XhugfGPNirs/s1600/photo%2B4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-zc71GupCMY0/Tqw6Q3e-CmI/AAAAAAAAAEA/XhugfGPNirs/s200/photo%2B4.JPG" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;The iBook is still in daily use, mostly for browsing the web, writing e-mails and this blog; and I still use it for R as well. For a long time it run R 2.10.1, the last PowerPC binary version available on &lt;a href="http://cran.at.r-project.org/bin/macosx/"&gt;CRAN&lt;/a&gt; for &lt;a href="http://en.wikipedia.org/wiki/Mac_OS_X_Tiger"&gt;Mac OS 10.4.11&lt;/a&gt; (Tiger).  &lt;br /&gt;&lt;br /&gt;But, R 2.10.1 is a bit dated by now and for the development of my &lt;a href="http://code.google.com/p/google-motion-charts-with-r"&gt;googleVis&lt;/a&gt; package I require at least R 2.11.0. So I decided to try to install the most recent version from source, using Xcode 2.5 and &lt;a href="http://www.tug.org/mactex/2011/faq/3-4.html"&gt;TeXLive&lt;/a&gt;-2008.&lt;br /&gt;&lt;br /&gt;R 2.14.0 is expected to be released on Monday (31st October 2011). The pre-release version is already available on &lt;a href="http://cran.r-project.org/src/base-prerelease/"&gt;CRAN&lt;/a&gt;. I assume that the pre-release version is pretty close to the final version of R 2.14.0, so why wait? &lt;br /&gt;&lt;br /&gt;It was actually surprisingly easy to compile the command line version of R from sources. The GUI would be a nice to have, but I am perfectly happy to run R via the Terminal, xterm and Emacs. However, it shouldn't be a surprise that running &lt;code&gt;configure, make, make install&lt;/code&gt; on a 800 Mhz G4 with 640MB memory does take its time. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-g6JL_db_LP8/Tqv1GxlDePI/AAAAAAAAAD0/wmiL_8zjZyo/s1600/ibook.tiff" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="123" src="http://4.bp.blogspot.com/-g6JL_db_LP8/Tqv1GxlDePI/AAAAAAAAAD0/wmiL_8zjZyo/s200/ibook.tiff" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Below you will find the building details. Please feel free to get in touch with me, if you would like access to my &lt;a href="http://en.wikipedia.org/wiki/Apple_Disk_Image"&gt;Apple Disk Image&lt;/a&gt; (dmg) file. You find my e-mail address in the maintainer field of the &lt;a href="http://cran.at.r-project.org/web/packages/googleVis/index.html"&gt;&lt;code&gt;googleVis&lt;/code&gt;&lt;/a&gt; package.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Building R from source on Mac OS 10.4 with Xcode 2.5 (gcc-4.0.1)&lt;/h3&gt;&lt;br /&gt;Before you start, make sure you have all the Apple Developer Tools installed. I have &lt;a href="http://developer.apple.com/xcode/"&gt;Xcode&lt;/a&gt; installed in &lt;code&gt;/Developer/Applications&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;From the &lt;a href="http://cran.at.r-project.org/src/base-prerelease/"&gt;pre-release directory&lt;/a&gt; on CRAN I downloaded the file R-rc_2011-10-28_r57465.tar.gz. &lt;br /&gt;&lt;br /&gt;The first steps were to extract the archive and to run the configure scripts to build the various Makefiles. To do this, I opened the Terminal programme (it's in the Utilities folder of Applications), changed into the directory in which I stored the tar.gz-file and typed:&lt;br /&gt;&lt;pre&gt;tar xvfz R-rc_2011-10-28_r57465.tar.gz&lt;br /&gt;cd R-rc&lt;br /&gt;./configure&lt;br /&gt;&lt;/pre&gt;This process took a little while (about 15 minutes) and at the end I received the following statement:&lt;br /&gt;&lt;pre&gt;R is now configured for powerpc-apple-darwin8.11.0&lt;br /&gt;&lt;br /&gt;  Source directory:          .&lt;br /&gt;  Installation directory:    /Library/Frameworks&lt;br /&gt;&lt;br /&gt;  C compiler:                gcc -std=gnu99  -g -O2&lt;br /&gt;  Fortran 77 compiler:       gfortran  -g -O2&lt;br /&gt;&lt;br /&gt;  C++ compiler:              g++  -g -O2&lt;br /&gt;  Fortran 90/95 compiler:    gfortran -g -O2&lt;br /&gt;  Obj-C compiler:            gcc -g -O2 -fobjc-exceptions&lt;br /&gt;&lt;br /&gt;  Interfaces supported:      X11, aqua, tcltk&lt;br /&gt;  External libraries:        readline, ICU&lt;br /&gt;  Additional capabilities:   NLS&lt;br /&gt;  Options enabled:           framework, shared BLAS, R profiling, Java&lt;br /&gt;&lt;br /&gt;  Recommended packages:      yes&lt;br /&gt;&lt;/pre&gt;With all the relevant Makefiles in place I could start the build process via:&lt;br /&gt;&lt;pre&gt;make -j8&lt;br /&gt;&lt;/pre&gt;Now I had time for a cup of tea, as the build took about one hour. Finally, to finish the installation, I placed the new R version into its place in &lt;code&gt;/Library/Frameworks/&lt;/code&gt; by typing:&lt;br /&gt;&lt;pre&gt;sudo make install&lt;br /&gt;&lt;/pre&gt;Job done. Let's test it:&lt;br /&gt;&lt;pre&gt;Grappa:~ Markus$ R&lt;br /&gt;&lt;br /&gt;R version 2.14.0 RC (2011-10-28 r57465)&lt;br /&gt;Copyright (C) 2011 The R Foundation for Statistical Computing&lt;br /&gt;ISBN 3-900051-07-0&lt;br /&gt;Platform: powerpc-apple-darwin8.11.0 (32-bit)&lt;br /&gt;&lt;br /&gt;R is free software and comes with ABSOLUTELY NO WARRANTY.&lt;br /&gt;You are welcome to redistribute it under certain conditions.&lt;br /&gt;Type 'license()' or 'licence()' for distribution details.&lt;br /&gt;&lt;br /&gt;  Natural language support but running in an English locale&lt;br /&gt;&lt;br /&gt;R is a collaborative project with many contributors.&lt;br /&gt;Type 'contributors()' for more information and&lt;br /&gt;'citation()' on how to cite R or R packages in publications.&lt;br /&gt;&lt;br /&gt;Type 'demo()' for some demos, 'help()' for on-line help, or&lt;br /&gt;'help.start()' for an HTML browser interface to help.&lt;br /&gt;Type 'q()' to quit R.&lt;br /&gt;&lt;br /&gt;&gt; for(i in 1:8) print("Happy birthday iBook!")&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;[1] "Happy birthday iBook!"&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The installation of additional packages worked straightforward via &lt;code&gt;install.packages(c("vector of packages"))&lt;/code&gt;, though it took time, as everything was build from sources. This it what it looks like on my iBook G4 today:&lt;br /&gt;&lt;pre&gt;&gt; installed.packages()[,"Version"]&lt;br /&gt; ChainLadder GillespieSSA        Hmisc     ISOcodes   KernSmooth         MASS &lt;br /&gt;   "0.1.5-0"      "0.5-4"      "3.8-3" "2011.07.31"     "2.23-6"     "7.3-16" &lt;br /&gt;      Matrix  R.methodsS3         R.oo        R.rsp      R.utils RColorBrewer &lt;br /&gt;     "1.0-1"      "1.2.1"      "1.8.2"      "0.6.2"      "1.8.5"      "1.0-5" &lt;br /&gt;       RCurl      RJSONIO        RUnit         Rook          XML       actuar &lt;br /&gt;    "1.6-10"     "0.96-0"     "0.4.26"      "1.0-2"      "3.4-3"      "1.1-2" &lt;br /&gt;        base       bitops         boot         brew          car        class &lt;br /&gt;    "2.14.0"    "1.0-4.1"      "1.3-3"      "1.0-6"     "2.0-11"      "7.3-3" &lt;br /&gt;     cluster         coda    codetools         coin   colorspace     compiler &lt;br /&gt;    "1.14.1"     "0.14-4"      "0.2-8"     "1.0-20"      "1.1-0"     "2.14.0" &lt;br /&gt;  data.table     datasets       digest    flexclust      foreign          gam &lt;br /&gt;     "1.7.1"     "2.14.0"      "0.5.1"      "1.3-2"     "0.8-46"     "1.04.1" &lt;br /&gt;     ggplot2    googleVis    grDevices     graphics         grid    iterators &lt;br /&gt;     "0.8.9"     "0.2.10"     "2.14.0"     "2.14.0"     "2.14.0"      "1.0.5" &lt;br /&gt;   itertools      lattice       lmtest       mclust      methods         mgcv &lt;br /&gt;     "0.1-1"     "0.20-0"     "0.9-29"     "3.4.10"     "2.14.0"      "1.7-9" &lt;br /&gt;  modeltools      mvtnorm         nlme         nnet     parallel        party &lt;br /&gt;    "0.2-18"   "0.9-9991"    "3.1-102"      "7.3-1"     "2.14.0"  "0.9-99994" &lt;br /&gt;        plyr        proto         pscl      reshape        rpart     sandwich &lt;br /&gt;       "1.6"    "0.3-9.2"     "1.04.1"      "0.8.4"     "3.1-50"      "2.2-8" &lt;br /&gt;     spatial      splines      statmod        stats       stats4  strucchange &lt;br /&gt;     "7.3-3"     "2.14.0"     "1.4.13"     "2.14.0"     "2.14.0"      "1.4-6" &lt;br /&gt;    survival    systemfit        tcltk        tools        utils          vcd &lt;br /&gt;   "2.36-10"      "1.1-8"     "2.14.0"     "2.14.0"     "2.14.0"     "1.2-12" &lt;br /&gt;         zoo &lt;br /&gt;     "1.7-5" &lt;br /&gt;&lt;/pre&gt;&lt;!--&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;sudo ln -s /Library/Frameworks/R.framework/Resources/bin/R /usr/bin/R&lt;br /&gt;&lt;br /&gt;sudo ln -s /Library/Frameworks/R.framework/Resources/bin/Rscript /usr/bin/Rscript&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-5571527520704311599?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/5571527520704311599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/10/installing-r-2140-on-ibook-g4-running.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/5571527520704311599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/5571527520704311599'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/10/installing-r-2140-on-ibook-g4-running.html' title='Installing R 2.14.0 on an iBook G4 running Mac OS 10.4.11'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-zc71GupCMY0/Tqw6Q3e-CmI/AAAAAAAAAEA/XhugfGPNirs/s72-c/photo%2B4.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-4946818962171096789</id><published>2011-10-23T17:35:00.007+01:00</published><updated>2012-02-04T07:34:18.644Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='tikzDevice'/><category scheme='http://www.blogger.com/atom/ns#' term='attachfile2'/><category scheme='http://www.blogger.com/atom/ns#' term='tikz'/><category scheme='http://www.blogger.com/atom/ns#' term='XeLaTeX'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='adjustbox'/><category scheme='http://www.blogger.com/atom/ns#' term='Sweave'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Using Sweave with XeLaTeX</title><content type='html'>Using R with LaTeX via Sweave is a great way to create reproducible output. However, using specific fonts, e.g. your corporate fonts, can be painful with &lt;code&gt;pdflatex&lt;/code&gt;. Over the last few weeks I have fallen in love with the TeX format &lt;a href="http://scripts.sil.org/xetex"&gt;XeLaTeX&lt;/a&gt; and its XeTeX engine.&lt;br /&gt;&lt;br /&gt;With XeLaTeX I had to overcome some hurdles, which I would like to share here: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; attaching files,&lt;br /&gt;&lt;/li&gt;&lt;li&gt; trimming and clipping images,&lt;br /&gt;&lt;/li&gt;&lt;li&gt; learning how to use the tikzDevice package.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/gview?url=http://dl.dropbox.com/u/7586336/blogger/SweaveXeLaTeXExample.pdf&amp;embedded=true" style="width:600px; height:500px;" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Sweave file of the above &lt;a href="http://dl.dropbox.com/u/7586336/blogger/SweaveXeLaTeXExample.pdf"&gt;document&lt;/a&gt; is attached to the PDF-file itself, but you can also find it on github: &lt;a href=https://gist.github.com/1307543/&gt;SweaveXeLaTeXExample.Rnw&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-4946818962171096789?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/4946818962171096789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/10/using-sweave-with-xelatex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/4946818962171096789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/4946818962171096789'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/10/using-sweave-with-xelatex.html' title='Using Sweave with XeLaTeX'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-778835086777221570</id><published>2011-10-12T08:23:00.010+01:00</published><updated>2012-02-29T00:09:10.118Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='publishers'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>R related books: Traditional vs online publishing</title><content type='html'>How many R related books have been published so far? Who is the most popular publisher? How many other manuals, tutorials and books have been published online? Let's find out. &lt;br /&gt;&lt;br /&gt;A few years ago I used the publication list on r-project.org as an argument with the IT department that R is an established statistical programming language and that they should allow me to install it on my PC. I believe at the time there were about 20 R related books available.&lt;br /&gt;&lt;br /&gt;A recent &lt;a href="http://r-ecology.blogspot.com/2011/10/r-tutorial-on-regular-expressions-regex.html"&gt;post&lt;/a&gt; on &lt;a href="http://r-ecology.blogspot.com/"&gt;Recology&lt;/a&gt; pointed me to a talk given by &lt;a href="http://www.slideshare.net/schamber/regexpresentationedgoodwin"&gt;Ed Goodwin&lt;/a&gt; at the Houston R user group meeting  about regular expressions in R, something I always wanted to learn properly, but never got around to do. &lt;br /&gt;&lt;br /&gt;So let's see, if we can manage to extract the information of published R books and texts from r-project.org, with what we learned from Ed about regular expressions in R.&lt;br /&gt;&lt;br /&gt;We will start analysing the &lt;a href="http://www.r-project.org/doc/bib/R-books.bib"&gt;bib-file&lt;/a&gt; on r-project.org by publisher and then move on to look more closely at the number of titles published over time, including the self-published PDF-files on &lt;a href="http://www.blogger.com/%22http://cran.r-project.org/doc/contrib/"&gt;CRAN&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We read the bib-file into R using the &lt;code&gt;readLines&lt;/code&gt; function and start analysing the data with regular expressions. The function &lt;code&gt;regexpr&lt;/code&gt; allows us to find for each line the character place where "publisher =" starts, or it will return -1 otherwise, if no entry is found. We continue with the R function &lt;code&gt;strsplit&lt;/code&gt; to cut the strings into sub-component for further analysis:&lt;br /&gt;&lt;div style="overflow: auto;"&gt;&lt;div class="geshifilter"&gt;&lt;pre class="r geshifilter-R" style="font-family: monospace;"&gt;bibfile &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/readLines"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;readLines&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"http://www.r-project.org/doc/bib/R-books.bib"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;pub.start.pos &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/regexpr"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;regexpr&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"publisher ="&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; bibfile&lt;span style="color: #339933;"&gt;,&lt;/span&gt; perl=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;pub.lines &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/which"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;which&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt; pub.start.pos &amp;gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt; &lt;span style="color: #009900;"&gt;)&lt;/span&gt; &lt;br /&gt;pub.split &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/strsplit"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;strsplit&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;bibfile&lt;span style="color: #009900;"&gt;[&lt;/span&gt;pub.lines&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"[ =,]"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; perl=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &lt;br /&gt;publishers &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;pub.split&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;x&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/paste"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;paste&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;x&lt;span style="color: #009900;"&gt;[&lt;/span&gt;-&lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;:&lt;span style="color: #cc66cc;"&gt;5&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;publishers &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/gsub"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;gsub&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"[{}&lt;span style="color: #000099; font-weight: bold;"&gt;\"&lt;/span&gt;),&lt;span style="color: #000099; font-weight: bold;"&gt;\\&lt;/span&gt;]"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;""&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; publishers&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;publishers &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/gsub"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;gsub&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"c&lt;span style="color: #000099; font-weight: bold;"&gt;\\&lt;/span&gt;("&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;""&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; publishers&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/mgcv/s"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;s&lt;/span&gt;&lt;/a&gt;=&lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"Springer"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Wiley"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Sage"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Chapman &amp;amp; Hall"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"CRC press"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Servicio"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;r=&lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"Springer"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Wiley"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Sage"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Chapman &amp;amp; Hall/CRC"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: blue;"&gt;"Chapman &amp;amp; Hall/CRC"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;span style="color: blue;"&gt;"Universidad de La Rioja"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;i &lt;span style="color: black; font-weight: bold;"&gt;in&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/seq"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;seq&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;along=&lt;a href="http://inside-r.org/r-doc/mgcv/s"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;{&lt;/span&gt;&lt;br /&gt;  publishers&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/regexpr"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;regexpr&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/mgcv/s"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;s&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;i&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; publishers&lt;span style="color: #339933;"&gt;,&lt;/span&gt; ignore.case=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &amp;gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt; &amp;lt;- r&lt;span style="color: #009900;"&gt;[&lt;/span&gt;i&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;pubs &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/table"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;table&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;publishers&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;pubs &amp;lt;- pubs&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/order"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;order&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;pubs&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;br /&gt;opar &amp;lt;- &lt;a href="http://inside-r.org/r-doc/graphics/par"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;par&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/packages/cran/mAr"&gt;mar&lt;/a&gt; = &lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;4&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;15&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;4&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/graphics/barplot"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;barplot&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;pubs&lt;span style="color: #339933;"&gt;,&lt;/span&gt; horiz=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; las=&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/col"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;col&lt;/span&gt;&lt;/a&gt;=&lt;span style="color: blue;"&gt;"#DC3912"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;  xlab=&lt;a href="http://inside-r.org/r-doc/base/format"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;format&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/Sys.time"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;Sys.time&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"As at %d %b %Y"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;  border=&lt;span style="color: black; font-weight: bold;"&gt;NA&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; main=&lt;span style="color: blue;"&gt;"Number of R books&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;by publisher"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/graphics/par"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;par&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;opar&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-08F5Y0IGPcE/TpIJcnoEWHI/AAAAAAAAACc/8rv5lwi3Ffs/s1600/R_Books_by_Publisher.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="343" src="http://3.bp.blogspot.com/-08F5Y0IGPcE/TpIJcnoEWHI/AAAAAAAAACc/8rv5lwi3Ffs/s400/R_Books_by_Publisher.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;We note that Springer is by far the most popular publisher for R related books. Thus, if you are looking for a specific topic around R your safest bet would be to check out Springer's portfolio.&lt;br /&gt;&lt;br /&gt;However, although currently Springer is the publisher with the highest appetite for R, you may be able to find the information free online on r-project.org, in particular if your are looking for a tutorial like document/book.&lt;br /&gt;&lt;br /&gt;Hence we want to compare the number of published R books in a traditional way, versus the PDF-files contributed online on CRAN: &lt;a href="http://cran.r-project.org/doc/contrib/"&gt;http://cran.r-project.org/doc/contrib/&lt;/a&gt;. CRAN is in this respect also a bit of a publisher, as I assume that the guys behind CRAN have some kind of a filtering and QA process.  &lt;br /&gt;&lt;br /&gt;We use the &lt;a href="http://cran.r-project.org/web/packages/XML/index.html"&gt;XML package&lt;/a&gt; to read the online directory content of the contributed books into R to get a better understanding of the published PDF-files.  In a similar approach as above, we analyse the R books and PDF files published by year. Please find the R code below the charts. &lt;br /&gt;&lt;br /&gt;From the two charts below we can see that over the years more and more R texts have been made available, illustrating the increased interest in R. The first chart shows the number of books/documents published in each year, while the second chart shows the same data in a cumulative way. &lt;br /&gt;&lt;br /&gt;Today there are 206 R related books available either on CRAN or via your bookshop. Of the 206 texts 113 are published in the traditional sense with a publishing house, and the number is still growing. However the growth has slowed down a bit over the recent years, after a peak of 26 new books in 2009.&lt;br /&gt;&lt;br /&gt;From the second chart I can see that I must have had the discussion on R I mentioned earlier around 2004 - 2005.&lt;br /&gt;&lt;br /&gt;&lt;iframe height="1100px" src="http://dl.dropbox.com/u/7586336/blogger/Rbooks.html" width="620px"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; &amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow: auto;"&gt;&lt;div class="geshifilter"&gt;&lt;pre class="r geshifilter-R" style="font-family: monospace;"&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Continue from the above R code&lt;/span&gt;&lt;br /&gt;year.start.pos &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/regexpr"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;regexpr&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"year ="&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; bibfile&lt;span style="color: #339933;"&gt;,&lt;/span&gt; perl=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;year.lines &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/which"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;which&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt; year.start.pos &amp;gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt; &lt;span style="color: #009900;"&gt;)&lt;/span&gt; &lt;br /&gt;year.split &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/strsplit"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;strsplit&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;bibfile&lt;span style="color: #009900;"&gt;[&lt;/span&gt;year.lines&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"[ =,]"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; perl=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &lt;br /&gt;Pub.year &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;year.split&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"[["&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;6&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;tradPub &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/as.data.frame"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.data.frame&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/table"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;table&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;Pub.year&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/names"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;names&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;tradPub&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"year"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"traditional book"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Get information about the online published PDF files&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/library"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;library&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/packages/cran/XML"&gt;XML&lt;/a&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;webPub &amp;lt;-&lt;br /&gt;readHTMLTable&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/readLines"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;readLines&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"http://cran.r-project.org/doc/contrib/"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## look only at the PDF files&lt;/span&gt;&lt;br /&gt;pdfs &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/regexpr"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;regexpr&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;".pdf"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/as.character"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.character&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;webPub&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;webPub.modified &amp;lt;- webPub&lt;span style="color: #009900;"&gt;[&lt;/span&gt;pdfs &amp;gt; &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;3&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;br /&gt;webPub.modified &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/strsplit"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;strsplit&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/stats/na.omit"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;na.omit&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/as.character"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.character&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;webPub.modified&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"[ -]"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;webPub.year &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;webPub.modified&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"[["&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;3&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;webPub &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/as.data.frame"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.data.frame&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/table"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;table&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;webPub.year&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/names"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;names&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;webPub&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"year"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"online PDF"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Merge information about the online and traditional books&lt;/span&gt;&lt;br /&gt;totalPub &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/merge"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;tradPub&lt;span style="color: #339933;"&gt;,&lt;/span&gt; webPub&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/all"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;all&lt;/span&gt;&lt;/a&gt;=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;totalPub&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/is.na"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;is.na&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;totalPub&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt; &amp;lt;- &lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Calculate the cumulative statistics&lt;/span&gt;&lt;br /&gt;cumPub &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/data.frame"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;data.frame&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;year=totalPub$year&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/apply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;apply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;totalPub&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;:&lt;span style="color: #cc66cc;"&gt;3&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/cumsum"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;cumsum&lt;/span&gt;&lt;/a&gt; &lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/names"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;names&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;cumPub&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"year"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"traditional book"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: blue;"&gt;"online PDF"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## We use the googleVis package to create area charts&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/library"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;library&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;googleVis&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;cumPlot &amp;lt;- gvisAreaChart&lt;span style="color: #009900;"&gt;(&lt;/span&gt;cumPub&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"year"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;      &lt;a href="http://inside-r.org/r-doc/base/options"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;options&lt;/span&gt;&lt;/a&gt;=&lt;a href="http://inside-r.org/r-doc/base/list"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;list&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/graphics/title"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;title&lt;/span&gt;&lt;/a&gt;=&lt;span style="color: blue;"&gt;"Number of R related books available"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;    isStacked=&lt;span style="color: black; font-weight: bold;"&gt;TRUE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;incPlot &amp;lt;- gvisAreaChart&lt;span style="color: #009900;"&gt;(&lt;/span&gt;totalPub&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"year"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;          &lt;a href="http://inside-r.org/r-doc/base/options"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;options&lt;/span&gt;&lt;/a&gt;=&lt;a href="http://inside-r.org/r-doc/base/list"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;list&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/graphics/title"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;title&lt;/span&gt;&lt;/a&gt;=&lt;span style="color: blue;"&gt;"Number of R&lt;br /&gt;       related books published"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;       isStacked=&lt;span style="color: black; font-weight: bold;"&gt;FALSE&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;inccumPlot &amp;lt;- gvisMerge&lt;span style="color: #009900;"&gt;(&lt;/span&gt;incPlot&lt;span style="color: #339933;"&gt;,&lt;/span&gt; cumPlot&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/graphics/plot"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;plot&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;inccumPlot&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.inside-r.org/pretty-r" title="Created by Pretty R at inside-R.org"&gt;Created by Pretty R at inside-R.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-778835086777221570?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/778835086777221570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/10/r-related-books-traditional-vs-online.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/778835086777221570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/778835086777221570'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/10/r-related-books-traditional-vs-online.html' title='R related books: Traditional vs online publishing'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-08F5Y0IGPcE/TpIJcnoEWHI/AAAAAAAAACc/8rv5lwi3Ffs/s72-c/R_Books_by_Publisher.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-7916829977076277473</id><published>2011-09-30T08:00:00.004+01:00</published><updated>2012-02-04T07:34:41.414Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Motion Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='options'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='initial view'/><category scheme='http://www.blogger.com/atom/ns#' term='World Bank'/><category scheme='http://www.blogger.com/atom/ns#' term='RJSONIO'/><category scheme='http://www.blogger.com/atom/ns#' term='WDI'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Setting the initial view of a motion chart in R</title><content type='html'>Following on from my article about &lt;a href="http://www.blogger.com/lamages.blogspot.com/2011/09/accessing-and-plotting-world-bank-data.html"&gt;accessing and plotting World Bank data with R&lt;/a&gt; I want to talk about how to change the initial view of a motion chart.&lt;br /&gt;&lt;br /&gt;Over the last couple of weeks I have been asked a view times how to do this. For instance &lt;a href="http://redmonk.com/sogrady/2011/09/09/rd-is-important-but-for-whom/"&gt;Stephen O'Grady&lt;/a&gt; wanted to create a motion chart, which shows initially a line chart, rather than a bubble chart. &lt;br /&gt;&lt;br /&gt;Changing the initial settings of a motion chart is actually quite easy, if you know how to. The trick is to use the &lt;code&gt;state&lt;/code&gt; argument in the list of options of &lt;code&gt;gvisMotionChart&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;As a case study we will come back to the World Bank data set and try to do some homework givem by  &lt;a href="http://anson.ucdavis.edu/~duncan/"&gt;Duncan Temple Lang&lt;/a&gt; in his course on &lt;a href="http://eeyore.ucdavis.edu/stat242/Homeworks/XML.html"&gt;introduction to statistical computing course&lt;/a&gt; by. Duncan asked his students to query the World Bank data base to create a plot, which would show the number of internet users per 1000 in Africa over time as line chart. Further, he would like to see a legend next to the chart to identify which country is which and tooltips for each curve, so we can identify the country.&lt;br /&gt;&lt;br /&gt;A motion chart, displayed as a line chart, would do the trick. &lt;br /&gt;&lt;br /&gt;Okay, getting the data is easy, thanks to the &lt;a href="http://cran.r-project.org/web/packages/WDI/index.html"&gt;WDI&lt;/a&gt; package, or via a direct download, and so it is to create a motion chart with bubbles. Interactively we can change the bubble chart into a line chart, we can select some countries and change the y-axis to log-scale. However, when we reload the page we are back to square one: a bubble chart. So the idea is to pass the changed chart setting on to the initial plot. You find those settings, of the current view, as a string in the advanced tab of the settings window. Click on the wrench symbol in the bottom right hand corner of a motion chart to access this window.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Y9tBZcI-lHs/ToTgfG-IALI/AAAAAAAAACU/7O92CS5VoNM/s1600/Settings.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="168" src="http://3.bp.blogspot.com/-Y9tBZcI-lHs/ToTgfG-IALI/AAAAAAAAACU/7O92CS5VoNM/s200/Settings.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Screen shot the settings window of a motion chart&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Copy this string and paste it into the &lt;code&gt;state&lt;/code&gt; argument of the options list. &lt;br /&gt;&lt;br /&gt;Here is an example, where I pre-selected Sierra Leone and Seychelles (countries with the lowest and highest number of internet users) together with Africa, North Africa and Sub-Saharan Africa (all income levels). You find the R code below to replicate the plot.&lt;br /&gt;&lt;br /&gt;What does the data tell you? Play around with the graph, e.g. change it to a column graph, deselect all countries and change the y-axes to linear again, and hit the play button.&amp;nbsp;How could we improve the plot?&lt;br /&gt;&lt;br /&gt;&lt;iframe height="400px" src="http://dl.dropbox.com/u/7586336/blogger/InternetUserPerThousandsAfricaWorldBank20110920.html" width="670px"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;br /&gt;For more details about the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; package see the &lt;a href="http://cran.r-project.org/web/packages/googleVis/vignettes/googleVis.pdf"&gt;vignette&lt;/a&gt;, and for more details about motion charts and its option see also the &lt;a href="http://code.google.com/apis/chart/interactive/docs/gallery/motionchart.html#Motion_Chart_initial_state"&gt;Google&amp;nbsp;Visualisation&amp;nbsp;API documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow: auto;"&gt;&lt;div class="geshifilter"&gt;&lt;pre class="r geshifilter-R" style="font-family: monospace;"&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Based on ideas and code from Duncan Temple Lang, see:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## http://eeyore.ucdavis.edu/stat242/Homeworks/XML.html&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/library"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;library&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;googleVis&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/url"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;url&lt;/span&gt;&lt;/a&gt; = &lt;span style="color: blue;"&gt;"http://api.worldbank.org/countries/all/indicators/IT.NET.USER.P3?date=1990:2010&amp;amp;format=json&amp;amp;per_page=12000"&lt;/span&gt;&lt;br /&gt;iu = fromJSON&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/url"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;url&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;internetUsers = &lt;a href="http://inside-r.org/r-doc/base/data.frame"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;data.frame&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;year = &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;iu&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"[["&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"date"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;  InternetUsersPerThousands = &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;iu&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;   &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;x&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/ifelse"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;ifelse&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/is.null"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;is.null&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;x&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: blue;"&gt;"value"&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;  &lt;span style="color: black; font-weight: bold;"&gt;NA&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; x&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: blue;"&gt;"value"&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;  country = &lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;iu&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;x&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;    x&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: blue;"&gt;"country"&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;[&lt;/span&gt;&lt;span style="color: blue;"&gt;'value'&lt;/span&gt;&lt;span style="color: #009900;"&gt;]&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Create a line plot with gvisMotionChart&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Set initial state with a few regions selected and a log y-axes&lt;/span&gt;&lt;br /&gt;myState &amp;lt;- &lt;span style="color: blue;"&gt;'&lt;br /&gt;{"yZoomedIn":false,"yZoomedDataMin":0,"xAxisOption":"_TIME",&lt;br /&gt; "xZoomedDataMax":1230768000000,"time":"2009","playDuration":15000,&lt;br /&gt; "yAxisOption":"2","yLambda":0,"duration":{"timeUnit":"Y","multiplier":1},&lt;br /&gt; "xZoomedDataMin":631152000000,"uniColorForNonSelected":false,&lt;br /&gt; "showTrails":false,"orderedByY":false,"nonSelectedAlpha":0,&lt;br /&gt; "orderedByX":false,"sizeOption":"_UNISIZE","xLambda":1,&lt;br /&gt; "colorOption":"_UNIQUE_COLOR",&lt;br /&gt; "iconKeySettings":[{"key":{"dim0":"Sub-Saharan Africa (all income levels)"}},&lt;br /&gt;                    {"key":{"dim0":"North Africa"}},&lt;br /&gt;                    {"key":{"dim0":"Seychelles"}},&lt;br /&gt;                    {"key":{"dim0":"Sierra Leone"}},&lt;br /&gt;                    {"key":{"dim0":"Africa"}}],&lt;br /&gt; "dimensions":{"iconDimensions":["dim0"]},&lt;br /&gt; "yZoomedDataMax":220,"xZoomedIn":false,"iconType":"LINE"}&lt;br /&gt;'&lt;/span&gt;&lt;br /&gt;M &amp;lt;- gvisMotionChart&lt;span style="color: #009900;"&gt;(&lt;/span&gt;internetUsers&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"country"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"year"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/options"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;options&lt;/span&gt;&lt;/a&gt;=&lt;a href="http://inside-r.org/r-doc/base/list"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;list&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;width=&lt;span style="color: #cc66cc;"&gt;650&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; height=&lt;span style="color: #cc66cc;"&gt;350&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/datasets/state"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;state&lt;/span&gt;&lt;/a&gt;=myState&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/graphics/plot"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;plot&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;M&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Session Info&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## sessionInfo()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## R version 2.13.1 Patched (2011-08-14 r56742)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## locale:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## [1] en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## attached base packages:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## [1] stats     graphics  grDevices utils     datasets  methods   base     &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## other attached packages:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## [1] googleVis_0.2.10 RJSONIO_0.95-0 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## loaded via a namespace (and not attached):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## [1] tools_2.13.1&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.inside-r.org/pretty-r" title="Created by Pretty R at inside-R.org"&gt;Created by Pretty R at inside-R.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-7916829977076277473?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/7916829977076277473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/09/setting-initial-view-of-motion-chart-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/7916829977076277473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/7916829977076277473'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/09/setting-initial-view-of-motion-chart-in.html' title='Setting the initial view of a motion chart in R'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Y9tBZcI-lHs/ToTgfG-IALI/AAAAAAAAACU/7O92CS5VoNM/s72-c/Settings.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-5109337407431152963</id><published>2011-09-25T15:41:00.006+01:00</published><updated>2012-02-04T07:35:01.230Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Motion Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='World Bank'/><category scheme='http://www.blogger.com/atom/ns#' term='RJSONIO'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Public Data Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Accessing and plotting World Bank data with R</title><content type='html'>Over the past couple of days I played around with the data sets of the World Bank, and I have to admit that I am blown away by it. It is amazing, to see what is available on their &lt;a href="http://data.worldbank.org/"&gt;web site&lt;/a&gt;. It is worth visiting their &lt;a href="http://data.worldbank.org/products/data-visualization-tools"&gt;Data Visualisation Tools&lt;/a&gt; page. It is fantastic that they provide an &lt;a href="http://data.worldbank.org/querybuilder"&gt;API&lt;/a&gt; to their data. They have used it to build an &lt;a href="http://itunes.apple.com/us/app/world-bank-datafinder/id349081196"&gt;iPhone App&lt;/a&gt; which is pretty cool. You can have the world's data in your pocket. &lt;br /&gt;&lt;br /&gt;In this post I will show you how we can access data from the World Bank in R. As an example we create a motion chart, in the Hans Rosling style, as you find it on the &lt;a href="http://www.google.com/publicdata/home"&gt;Google Public Data Explorer&lt;/a&gt; site, which also uses data from the World Bank. Doing this, should give us the confidence that we understand the World Bank's interface. You can find this example as demo &lt;code&gt;&lt;a href="http://google-motion-charts-with-r.googlecode.com/svn/trunk/demo/WorldBank.R"&gt;WorldBank&lt;/a&gt;&lt;/code&gt; as part of the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; package from version 0.2.10 onwards.&lt;br /&gt;&lt;br /&gt;So let's try to replicate the initial plot of the Google Public Data Explorer, which shows fertility rate against life expectancy for each country from 1960 to today, whereby the countries are represented as bubbles, with the size reflecting the population and the colour the region. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://anson.ucdavis.edu/~duncan/"&gt;Duncan Temple Lang&lt;/a&gt; provides us with &lt;a href="http://eeyore.ucdavis.edu/stat242/Homeworks/XML.html"&gt;examples&lt;/a&gt; for accessing the World Bank's data using his &lt;a href="http://cran.r-project.org/web/packages/RJSONIO/index.html"&gt;RJSONIO&lt;/a&gt; and &lt;a href="http://cran.r-project.org/web/packages/RCurl/index.html"&gt;RCurl&lt;/a&gt; packages. The World Bank data is available via their API either as &lt;a href="http://en.wikipedia.org/wiki/XML"&gt;XML&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/JSON"&gt;JSON&lt;/a&gt;. We will use JSON as it is straightforward to read the JSON data set into R and to transform it into a data frame with the &lt;code&gt;fromJSON&lt;/code&gt; function of the RJSONIO package. In order to query the data base we have to know which indicator variable we want and what its key is. Thankfully, the World Bank provides us with a page which &lt;a href="http://data.worldbank.org/indicator/all"&gt;lists all indicator variables&lt;/a&gt;. Clicking on any of those reveals the indicator key in the URL. For our example we get the following mappings:&lt;br /&gt;&lt;br /&gt;&lt;table border="1" bordercolor="#3E2F2F" style="background-color:#FFFFFF" width="60%" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;   &lt;td&gt;&lt;b&gt;Indicator&lt;/b&gt;&lt;/td&gt;   &lt;td&gt;&lt;b&gt;Key&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;fertility rate&lt;/td&gt;   &lt;td&gt;SP.DYN.TFRT.IN&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;life expectancy&lt;/td&gt;   &lt;td&gt;SP.DYN.LE00.IN&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;population&lt;/td&gt;   &lt;td&gt;SP.POP.TOTL&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;GDP per capita (current US$)&lt;/td&gt;   &lt;td&gt;NY.GDP.PCAP.CD&lt;/td&gt;  &lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;That's about it. From Duncan we have learned how to create the URL string to query the data base, and how to transform the query result from JSON into a data frame. The rest is re-arranging the data and combining the various data sets to get the final table. We display it via a motion chart using the &lt;code&gt;gvisMotionChart&lt;/code&gt; function of the &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; package. You find the detailed R code below.  &lt;br /&gt;&lt;br /&gt;&lt;iframe ,="" height="550px" src="http://dl.dropbox.com/u/7586336/blogger/WorldBankMotionChart.html" width="100%"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; &amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt;&lt;br /&gt;&lt;div style="overflow:auto;"&gt;&lt;div class="geshifilter"&gt;&lt;pre class="r geshifilter-R" style="font-family:monospace;"&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## This demo shows how country level data can be accessed from&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## the World Bank via their API and displayed with a Motion Chart.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Inspired by Google's Public Data Explorer, see&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## http://www.google.com/publicdata/home&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;##&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## For the World Bank Data terms of use see:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## http://data.worldbank.org/summary-terms-of-use&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;##&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## To run this demo an internet connection and Flash are required.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## This demo is part of the googleVis R package.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;##&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Markus Gesmann, 24 September 2011&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Distributed under GPL 2 or later&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;getWorldBankData &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;id=&lt;span style="color: #0000ff;"&gt;'SP.POP.TOTL'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/date"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;date&lt;/span&gt;&lt;/a&gt;=&lt;span style="color: #0000ff;"&gt;'1960:2010'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                             value=&lt;span style="color: #0000ff;"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; per.page=&lt;span style="color: #cc66cc;"&gt;12000&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt; &lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/require"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;require&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;RJSONIO&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/url"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;url&lt;/span&gt;&lt;/a&gt; &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/paste"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;paste&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;http://api.worldbank.org/countries/all/indicators/&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; id&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;               &lt;span style="color: #0000ff;"&gt;&amp;quot;?date=&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/date"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;date&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;&amp;amp;format=json&amp;amp;per_page=&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; per.page&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;               sep=&lt;span style="color: #0000ff;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  wbData &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; fromJSON&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/url"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;url&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  wbData = &lt;a href="http://inside-r.org/r-doc/base/data.frame"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;data.frame&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt;    year = &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;[[&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;date&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;    value = &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;x&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;      &lt;a href="http://inside-r.org/r-doc/base/ifelse"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;ifelse&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/is.null"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;is.null&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;x&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;NA&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; x&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;  &lt;br /&gt;    country.name = &lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;x&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; x&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;country&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'value'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;    country.id = &lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;x&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; x&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;country&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;'id'&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;    &lt;br /&gt;    &lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/names"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;names&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; value&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/return"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;return&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;getWorldBankCountries &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/function"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;function&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/require"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;require&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;RJSONIO&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;  wbCountries &lt;span style=""&gt;&amp;lt;-&lt;/span&gt;&lt;br /&gt;    fromJSON&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;http://api.worldbank.org/countries?per_page=12000&amp;amp;format=json&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;  wbCountries &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/data.frame"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;data.frame&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/t"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;t&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/sapply"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;sapply&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbCountries&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/unlist"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;unlist&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;  wbCountries&lt;span style=""&gt;$&lt;/span&gt;longitude &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbCountries&lt;span style=""&gt;$&lt;/span&gt;longitude&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;  wbCountries&lt;span style=""&gt;$&lt;/span&gt;latitude &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/as.numeric"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.numeric&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbCountries&lt;span style=""&gt;$&lt;/span&gt;latitude&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/levels"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;levels&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbCountries&lt;span style=""&gt;$&lt;/span&gt;region.value&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/gsub"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;gsub&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot; &lt;span style="color: #000099; font-weight: bold;"&gt;\\&lt;/span&gt;(all income levels&lt;span style="color: #000099; font-weight: bold;"&gt;\\&lt;/span&gt;)&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                                           &lt;span style="color: #0000ff;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/levels"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;levels&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbCountries&lt;span style=""&gt;$&lt;/span&gt;region.value&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;  &lt;a href="http://inside-r.org/r-doc/base/return"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;return&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbCountries&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Create a string 1960:this year, e.g. 1960:2011&lt;/span&gt;&lt;br /&gt;years &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/paste"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;paste&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;1960:&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/format"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;format&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/Sys.Date"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;Sys.Date&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;%Y&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; sep=&lt;span style="color: #0000ff;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Fertility rate&lt;/span&gt;&lt;br /&gt;fertility.rate &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; getWorldBankData&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;id=&lt;span style="color: #0000ff;"&gt;'SP.DYN.TFRT.IN'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                                   &lt;a href="http://inside-r.org/r-doc/base/date"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;date&lt;/span&gt;&lt;/a&gt;=years&lt;span style="color: #339933;"&gt;,&lt;/span&gt; value=&lt;span style="color: #0000ff;"&gt;&amp;quot;fertility.rate&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Life Expectancy&lt;/span&gt;&lt;br /&gt;life.exp &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; getWorldBankData&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;id=&lt;span style="color: #0000ff;"&gt;'SP.DYN.LE00.IN'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;  &lt;a href="http://inside-r.org/r-doc/base/date"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;date&lt;/span&gt;&lt;/a&gt;=years&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                             value=&lt;span style="color: #0000ff;"&gt;&amp;quot;life.expectancy&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Population&lt;/span&gt;&lt;br /&gt;population &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; getWorldBankData&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;id=&lt;span style="color: #0000ff;"&gt;'SP.POP.TOTL'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;  &lt;a href="http://inside-r.org/r-doc/base/date"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;date&lt;/span&gt;&lt;/a&gt;=years&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                               value=&lt;span style="color: #0000ff;"&gt;&amp;quot;population&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## GDP per capita (current US$)&lt;/span&gt;&lt;br /&gt;GDP.per.capita &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; getWorldBankData&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;id=&lt;span style="color: #0000ff;"&gt;'NY.GDP.PCAP.CD'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                                   &lt;a href="http://inside-r.org/r-doc/base/date"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;date&lt;/span&gt;&lt;/a&gt;=years&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                                   value=&lt;span style="color: #0000ff;"&gt;&amp;quot;GDP.per.capita.Current.USD&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Merge data sets&lt;/span&gt;&lt;br /&gt;wbData &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/merge"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;life.exp&lt;span style="color: #339933;"&gt;,&lt;/span&gt; fertility.rate&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;wbData &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/merge"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; population&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;wbData &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/merge"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; GDP.per.capita&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Get country mappings&lt;/span&gt;&lt;br /&gt;wbCountries &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; getWorldBankCountries&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Add regional information&lt;/span&gt;&lt;br /&gt;wbData &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/merge"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; wbCountries&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;quot;iso2Code&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;region.value&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;br /&gt;                                      &lt;span style="color: #0000ff;"&gt;&amp;quot;incomeLevel.value&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                by.x=&lt;span style="color: #0000ff;"&gt;&amp;quot;country.id&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; by.y=&lt;span style="color: #0000ff;"&gt;&amp;quot;iso2Code&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Filter out the aggregates and country id column&lt;/span&gt;&lt;br /&gt;subData &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/subset"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;subset&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;wbData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style=""&gt;!&lt;/span&gt;region.value &lt;span style=""&gt;%in%&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;quot;Aggregates&amp;quot;&lt;/span&gt; &lt;span style="color: #339933;"&gt;,&lt;/span&gt; select=&lt;br /&gt;                  &lt;span style=""&gt;-&lt;/span&gt;country.id&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Create a motion chart&lt;/span&gt;&lt;br /&gt;M &lt;span style=""&gt;&amp;lt;-&lt;/span&gt; gvisMotionChart&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;subData&lt;span style="color: #339933;"&gt;,&lt;/span&gt; idvar=&lt;span style="color: #0000ff;"&gt;&amp;quot;country.name&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; timevar=&lt;span style="color: #0000ff;"&gt;&amp;quot;year&amp;quot;&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                     &lt;a href="http://inside-r.org/r-doc/base/options"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;options&lt;/span&gt;&lt;/a&gt;=&lt;a href="http://inside-r.org/r-doc/base/list"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;list&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;width=&lt;span style="color: #cc66cc;"&gt;700&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; height=&lt;span style="color: #cc66cc;"&gt;600&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Display the chart in your browser&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/graphics/plot"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;plot&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;M&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.inside-r.org/pretty-r" title="Created by Pretty R at inside-R.org"&gt;Created by Pretty R at inside-R.org&lt;/a&gt;&lt;/p&gt;&lt;i&gt;Addition: We could simplify the code by using the &lt;a href="http://cran.r-project.org/web/packages/WDI/index.html"&gt;WDI&lt;/a&gt; package by &lt;a href="http://www-personal.umich.edu/~varel/"&gt;Vincent Arel-Bundock&lt;/a&gt;, as Diego points out in his comment below.&lt;br /&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-5109337407431152963?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/5109337407431152963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/09/accessing-and-plotting-world-bank-data.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/5109337407431152963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/5109337407431152963'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/09/accessing-and-plotting-world-bank-data.html' title='Accessing and plotting World Bank data with R'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-907255406249066036</id><published>2011-09-16T20:38:00.008+01:00</published><updated>2012-02-04T14:11:25.830Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Insurance'/><category scheme='http://www.blogger.com/atom/ns#' term='Poster'/><category scheme='http://www.blogger.com/atom/ns#' term='Warwick'/><category scheme='http://www.blogger.com/atom/ns#' term='UseR2011'/><category scheme='http://www.blogger.com/atom/ns#' term='cplm'/><category scheme='http://www.blogger.com/atom/ns#' term='Soapbox'/><category scheme='http://www.blogger.com/atom/ns#' term='ChainLadder'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>R in the insurance industry</title><content type='html'>Let's talk about R in the insurance industry today.&amp;nbsp;&amp;nbsp;David Smith's&amp;nbsp;&lt;a href="http://blog.revolutionanalytics.com/2011/09/how-lloyds-of-london-uses-r-for-insurance.html"&gt;blog&lt;/a&gt;&amp;nbsp;entry reminded me about our &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0By35Mtg9R9_RZTk5NzM1NGItYmUzMi00MmQ2LTk0MWYtYTY4YzZiNjg0ODc2&amp;amp;hl=en_GB"&gt;poster&lt;/a&gt; at the R user conference in Warwick in August 2011:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0By35Mtg9R9_RZTk5NzM1NGItYmUzMi00MmQ2LTk0MWYtYTY4YzZiNjg0ODc2&amp;amp;hl=en_GB" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-PZMaGUG6MHI/TnOh79kRR_I/AAAAAAAAABE/blDRUMJtJEo/s200/UserR_2011_poster.png" width="140" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Using R in Insurance&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;We presented examples on how R can be used in the insurance industry. We had a lot of fun presenting our poster. By accident we had printed the poster with quite a bit of access white space to the right. So we asked everyone who came along to sign it and by the end of the evening we had over 100 signatures!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;For the historians under the readers,&amp;nbsp;&lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0By35Mtg9R9_RYzcwODRhZjgtODhiMi00OWJjLWFiNDUtN2Y3YmNmNGY2M2Rl&amp;amp;hl=en_GB"&gt;here is my five year old poster&lt;/a&gt;&amp;nbsp;from GIRO in Vienna 2006.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-aRZqAdhqJLM/TnOXte-OUBI/AAAAAAAAABA/-yKfew6EITI/s1600/photo.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="239" src="http://2.bp.blogspot.com/-aRZqAdhqJLM/TnOXte-OUBI/AAAAAAAAABA/-yKfew6EITI/s320/photo.JPG" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Poster session at useR! 2011 in Warwick, UK&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Yesterday&amp;nbsp;&lt;a href="http://www.actuaryzhang.com/"&gt;Wayne Zhang&lt;/a&gt;, with whom I collaborate on the &lt;a href="http://code.google.com/p/chainladder/"&gt;ChainLadder&lt;/a&gt; package, released the first version of his new &lt;a href="http://code.google.com/p/cplm/"&gt;cplm&lt;/a&gt; package on &lt;a href="http://cran.r-project.org/web/packages/cplm/index.html"&gt;CRAN&lt;/a&gt;. &amp;nbsp;The name &lt;i&gt;cplm&lt;/i&gt; is short for compound Poisson linear models.&amp;nbsp;The cplm package is for fitting Tweedie compound Poisson linear models using the Monte Carlo EM algorithm. The form of the models that are handled in the package are generalized linear models, mixed-effect models and Bayesian models. For non-Bayesian models, maximum likelihood estimations are obtained for all parameters in the model, especially for the index parameter. Estimation for the Bayesian model is performed by Markov Chain Monte Carlo simulations.  These models find their application in actuarial science, see also his &lt;a href="http://actuaryzhang.com/publication/bayesianTweedie.pdf"&gt;paper&lt;/a&gt;. &amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;Here are a few more insurance related packages:&lt;/b&gt; &lt;/div&gt;&lt;ul style="max-width: 62em; padding-left: 25px;"&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;a href="http://code.google.com/p/chainladder/"&gt;ChainLadder&lt;/a&gt; -&amp;nbsp;Reserving methods in R. The package provides Mack-, Munich-, Bootstrap, and Multivariate-chain-ladder methods, as well as the LDF Curve Fitting methods of Dave Clark and GLM-based reserving models.&lt;/li&gt;&lt;li style="margin-bottom: 0.3em;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;a href="http://code.google.com/p/cplm/"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;cplm&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;-&amp;nbsp;Monte Carlo EM algorithms and Bayesian methods for fitting Tweedie compound Poisson linear models.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;a href="http://lossdev.r-forge.r-project.org/" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;lossDev&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;- A Bayesian time series loss development model. Features include skewed-t distribution with time-varying scale parameter, Reversible Jump MCMC for determining the functional form of the consumption path, and a structural break in this path.&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;a href="http://cran.r-project.org/web/packages/actuar/index.html" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;actuar&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;: Loss distributions modelling, risk theory (including ruin theory), simulation of compound hierarchical models and credibility theory&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;a href="http://cran.at.r-project.org/web/packages/fitdistrplus/index.html"&gt;fitdistrplus&lt;/a&gt;: Help to fit of a parametric distribution to non-censored or censored data&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;a href="http://www.favir.net/" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;favir&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;: Formatted Actuarial Vignettes in R. FAViR lowers the learning curve of the R environment. It is a series of peer-reviewed Sweave papers that use a consistent style.&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;a href="http://cran.r-project.org/web/packages/mondate/index.html" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;mondate:&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;R packackge to keep track of dates in terms of months&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0.3em;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;a href="http://cran.r-project.org/web/packages/lifecontingencies/index.html"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;lifecontingencies&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;-&amp;nbsp;Package to perform actuarial evaluation of life contingencies&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Other useful documents:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="max-width: 62em; padding-left: 25px;"&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;a href="http://toolkit.pbwiki.com/f/R%20Examples%20for%20Actuaries%20v0.1-1.pdf" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Introduction to R for Actuaries&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;by Nigel de Silva&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;a href="http://www.slideshare.net/dataspora/an-interactive-introduction-to-r-programming-language-for-statistics" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;An Interactive Introduction To R&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;by Michael Driscoll and Dan Murphy&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; margin-bottom: 0.3em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you have trouble with your IT department to get R on your machine&amp;nbsp;&lt;/span&gt;&lt;a href="http://freespace.virgin.net/markus.gesmann/publications/GIROPaper2006.pdf" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;this document&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;might help you to put some good arguments forward. The report "An Actuarial Toolkit" was presented at the GIRO convention 2006 in Vienna.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Help! &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;There is a special interest group for R in insurance:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;a href="https://stat.ethz.ch/mailman/listinfo/r-sig-insurance" rel="nofollow" style="color: #0000cc;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;R-SIG-insurance -- Special Interest Group on using R in actuarial science and insurance&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-907255406249066036?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/907255406249066036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/09/r-and-insurance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/907255406249066036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/907255406249066036'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/09/r-and-insurance.html' title='R in the insurance industry'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-PZMaGUG6MHI/TnOh79kRR_I/AAAAAAAAABE/blDRUMJtJEo/s72-c/UserR_2011_poster.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-8585788071268050094</id><published>2011-09-11T11:29:00.002+01:00</published><updated>2012-02-04T07:35:23.177Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='Rook'/><category scheme='http://www.blogger.com/atom/ns#' term='deSolve'/><category scheme='http://www.blogger.com/atom/ns#' term='gWidgets'/><category scheme='http://www.blogger.com/atom/ns#' term='LondonR'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>LondonR, 7 September 2011</title><content type='html'>On 7 September 2011 I attended the &lt;a href="http://www.londonr.org/"&gt;London R&lt;/a&gt; user group meeting. It was a very good turn out with about 50 attendees at the Shooting Star, a pub close to Liverpool Street Station. The session started at 18:00 with four presentations, followed by drinks sponsored by &lt;a href="http://www.mango-solutions.com/"&gt;Mango Solutions&lt;/a&gt;. The slides of the presentation are available on &lt;a href="http://londonr.org/Presentations/Agenda.html"&gt;londonr.org&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;The first presentation was given by &lt;a href="http://www.ucl.ac.uk/scs/people/academic-research-staff/lisa-wainer"&gt;Lisa Wainer&lt;/a&gt; from UCL Department of Security and Crime Science about crime data analysis using R. Lisa presented about a project with Merseyside police, where she had built software, in R with the gWidgets package, called the Hot Products Early Warning System, that is used to help understand and characterise the acquisitive crime problem in Merseyside on an ongoing basis, detecting emerging trends in hot products. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.noc.soton.ac.uk/obe/index.php?action=staff_entry&amp;amp;SID=1885"&gt;Chris Wood&lt;/a&gt; gave an insightful talk about his research on sediment biogeochemical modelling in the North Sea. His model uses a set differential equations with over 20 parameters. Chris is able to analyse and fit his model to data he gathered on an expedition in the North Sea using R, the &lt;a href="http://cran.r-project.org/web/packages/deSolve/index.html"&gt;deSolve&lt;/a&gt; package and having access to the super-computer at the University of Southampton. How cool is this? &lt;br /&gt;&lt;br /&gt;Jean-Robert Avettand-Fenoel talked about the &lt;a href="http://cran.r-project.org/web/packages/Rook/index.html"&gt;Rook&lt;/a&gt; package and how R and Rook has helped him to roll out new applications to his colleagues faster than using Excel, VBA and C++ or RExcel. Rook allows you to build web apps with R. The package is maintained by &lt;a href="http://jeffreyhorner.tumblr.com/"&gt;Jeffery Horner&lt;/a&gt;, who also brought us the &lt;a href="http://cran.r-project.org/web/packages/brew/index.html"&gt;brew&lt;/a&gt; package. The brew allows us, in combination with Rapache, to mix html and R code in the same file. This is quite similar to the approach taken by Sweave for LaTeX and R. However, &lt;a href="http://www.rinfinance.com/agenda/2011/JeffHorner.pdf"&gt;Rook&lt;/a&gt; provides a way to run R web applications on your desktop with the new internal R web server named Rhttpd. &lt;br /&gt;&lt;br /&gt;The final &lt;a href="https://docs.google.com/present/view?id=d43t954_258r33v77cn"&gt;presentation&lt;/a&gt; was actually given by myself talking about the googleVis package and the recent developments in version 0.2.9:&lt;br /&gt;&lt;iframe frameborder="0" height="342" src="https://docs.google.com/present/embed?id=d43t954_258r33v77cn" width="410"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-8585788071268050094?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/8585788071268050094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/09/londonr-7-september-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8585788071268050094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/8585788071268050094'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/09/londonr-7-september-2011.html' title='LondonR, 7 September 2011'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-6451811952154369976</id><published>2011-09-11T10:39:00.005+01:00</published><updated>2012-02-04T07:35:41.668Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='geomap'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Including googleVis output into a blogger post</title><content type='html'>It seems that you cannot include Google Visualisation Charts into a blog post directly.&lt;br /&gt;So, I tried to include the output of a &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; function as a gadget, but also unsuccessfully.&lt;br /&gt;Although you can include gadgets into your site template, it doesn't seem to work with blog posts. So, here is the trick which works for me: the &lt;code&gt;iframe&lt;/code&gt; tag.&lt;br /&gt;The following geo map is included as &lt;br /&gt;&lt;pre class="html" name="code"&gt;&amp;lt;iframe width="100%" height="400px" frameborder="0" src="http://dl.dropbox.com/u/7586336/blogger/AndrewGeoMap.html"&amp;gt;&lt;br /&gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;iframe frameborder="0" height="400px" src="http://dl.dropbox.com/u/7586336/blogger/AndrewGeoMap.html" width="100%"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt;&lt;br /&gt;As you can see, the chart itself is actually displayed in a page hosted by Dropbox and only inserted into this post via the &lt;code&gt;iframe&lt;/code&gt;-tag.&lt;br /&gt;&lt;br /&gt;For those of you, who would like to replicate the plot of Hurricane Andrew, here is the R code:&lt;br /&gt;&lt;div style="overflow: auto;"&gt;&lt;div class="geshifilter"&gt;&lt;pre class="r geshifilter-R" style="font-family: monospace;"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;library&lt;/span&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;googleVis&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;AndrewGeoMap &amp;lt;- gvisGeoMap&lt;span style="color: #009900;"&gt;(&lt;/span&gt;Andrew&lt;span style="color: #339933;"&gt;,&lt;/span&gt; locationvar=&lt;span style="color: blue;"&gt;'LatLong'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; numvar=&lt;span style="color: blue;"&gt;'Speed_kt'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                          hovervar=&lt;span style="color: blue;"&gt;'Category'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                          &lt;a href="http://inside-r.org/r-doc/base/options"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;options&lt;/span&gt;&lt;/a&gt;=&lt;a href="http://inside-r.org/r-doc/base/list"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;list&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;width=&lt;span style="color: #cc66cc;"&gt;600&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;height=&lt;span style="color: #cc66cc;"&gt;300&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;br /&gt;                          region=&lt;span style="color: blue;"&gt;'US'&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; dataMode=&lt;span style="color: blue;"&gt;'Markers'&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/graphics/plot"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;plot&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;AndrewGeoMap&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/print"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;print&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;AndrewGeoMap&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/file"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;file&lt;/span&gt;&lt;/a&gt;=&lt;span style="color: blue;"&gt;"~/Dropbox/Public/AndrewGeoMap.html"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.inside-r.org/pretty-r" title="Created by Pretty R at inside-R.org"&gt;Created by Pretty R at inside-R.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Correction (18 October 2011)&lt;/h2&gt;I just figured out that we can actually embed a chart into a blogger post directly.&amp;nbsp;You can literately copy and paste the code directly into the post.&amp;nbsp;However, it doesn't seem to be displayed with MS Internet Explorer.&lt;br /&gt;&lt;br /&gt;Anyhow, here is the example from above again:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;print(AndrewGeoMap, "chart", file="~/Desktop/AndrewGeoMap.js")&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Now I copied and pasted the content of that file below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="http://www.google.com/jsapi" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt; // jsData function gvisDataGeoMapID6362b9a6 (){  var data = new google.visualization.DataTable();  var datajson =[ [        10.8,      -35.5,         25,"Tropical Depression" ],[        11.2,      -37.4,         30,"Tropical Depression" ],[        11.7,      -39.6,         30,"Tropical Depression" ],[        12.3,        -42,         35,"Tropical Storm" ],[        13.1,      -44.2,         35,"Tropical Storm" ],[        13.6,      -46.2,         40,"Tropical Storm" ],[        14.1,        -48,         45,"Tropical Storm" ],[        14.6,      -49.9,         45,"Tropical Storm" ],[        15.4,      -51.8,         45,"Tropical Storm" ],[        16.3,      -53.5,         45,"Tropical Storm" ],[        17.2,      -55.3,         45,"Tropical Storm" ],[          18,      -56.9,         45,"Tropical Storm" ],[        18.8,      -58.3,         45,"Tropical Storm" ],[        19.8,      -59.3,         40,"Tropical Storm" ],[        20.7,        -60,         40,"Tropical Storm" ],[        21.7,      -60.7,         40,"Tropical Storm" ],[        22.5,      -61.5,         40,"Tropical Storm" ],[        23.2,      -62.4,         45,"Tropical Storm" ],[        23.9,      -63.3,         45,"Tropical Storm" ],[        24.4,      -64.2,         50,"Tropical Storm" ],[        24.8,      -64.9,         50,"Tropical Storm" ],[        25.3,      -65.9,         55,"Tropical Storm" ],[        25.6,        -67,         60,"Tropical Storm" ],[        25.8,      -68.3,         70,"Hurricane" ],[        25.7,      -69.7,         80,"Hurricane" ],[        25.6,      -71.1,         90,"Hurricane" ],[        25.5,      -72.5,        105,"Hurricane" ],[        25.4,      -74.2,        120,"Hurricane" ],[        25.4,      -75.8,        135,"Hurricane" ],[        25.4,      -77.5,        125,"Hurricane" ],[        25.4,      -79.3,        120,"Hurricane" ],[        25.6,      -81.2,        110,"Hurricane" ],[        25.8,      -83.1,        115,"Hurricane" ],[        26.2,        -85,        115,"Hurricane" ],[        26.6,      -86.7,        115,"Hurricane" ],[        27.2,      -88.2,        115,"Hurricane" ],[        27.8,      -89.6,        120,"Hurricane" ],[        28.5,      -90.5,        120,"Hurricane" ],[        29.2,      -91.3,        115,"Hurricane" ],[        30.1,      -91.7,         80,"Tropical Storm" ],[        30.9,      -91.6,         50,"Tropical Storm" ],[        31.5,      -91.1,         35,"Tropical Depression" ],[        32.1,      -90.5,         30,"Tropical Depression" ],[        32.8,      -89.6,         30,"Tropical Depression" ],[        33.6,      -88.4,         25,"Tropical Depression" ],[        34.4,      -86.7,         20,"Tropical Depression" ],[        35.4,        -84,         20,"Tropical Depression" ] ];data.addColumn('number','Latitude');data.addColumn('number','Longitude');data.addColumn('number','Speed_kt');data.addColumn('string','Category');data.addRows(datajson);return(data);} // jsDrawChartfunction drawChartGeoMapID6362b9a6() {  var data = gvisDataGeoMapID6362b9a6();  var options = {};options["dataMode"] = "Markers";options["width"] =    600;options["height"] =    300;options["region"] = "US";     var chart = new google.visualization.GeoMap(       document.getElementById('GeoMapID6362b9a6')     );     chart.draw(data,options);    }   // jsDisplayChart function displayChartGeoMapID6362b9a6(){  google.load("visualization", "1", { packages:["geomap"] });   google.setOnLoadCallback(drawChartGeoMapID6362b9a6);} // jsChart displayChartGeoMapID6362b9a6() &lt;!-- jsFooter --&gt;  //--&gt;&lt;/script&gt;&lt;br /&gt;&lt;div id="GeoMapID6362b9a6" style="height: 300px; width: 600px;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-6451811952154369976?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/6451811952154369976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/09/including-googlevis-output-into-blogger.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/6451811952154369976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/6451811952154369976'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/09/including-googlevis-output-into-blogger.html' title='Including googleVis output into a blogger post'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9065396442320388284.post-1617200107469328133</id><published>2011-09-04T19:43:00.003+01:00</published><updated>2011-11-23T07:23:52.670Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googleVis'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>googleVis 0.2.9</title><content type='html'>Today we published &lt;a href="http://code.google.com/p/google-motion-charts-with-r/"&gt;googleVis&lt;/a&gt; 0.2.9 on CRAN.&amp;nbsp;The new version updates the package for the new features of the Google Visualisation API and brings a new in-page editor option.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Here is a simple example, displaying the participants of the &lt;a href="http://www.warwick.ac.uk/statsdept/useR-2011/"&gt; R user Conference 2011&lt;/a&gt; in Warwick by country. Notice the 'Edit me' button in the top left corner of the chart, which allows you to change and customise the graph.&lt;/div&gt;&lt;iframe frameborder="0" height="400" src="http://dl.dropbox.com/u/7586336/blogger/UserR2011.html" width="100%"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;div style="overflow: auto;"&gt;&lt;div class="geshifilter"&gt;&lt;pre class="r geshifilter-R" style="font-family: monospace;"&gt;&lt;a href="http://inside-r.org/r-doc/base/library"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;library&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/packages/cran/XML"&gt;XML&lt;/a&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/url"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;url&lt;/span&gt;&lt;/a&gt; &amp;lt;- &lt;span style="color: blue;"&gt;"http://www.warwick.ac.uk/statsdept/useR-2011/participant-list.html"&lt;/span&gt;&lt;br /&gt;participants &amp;lt;- readHTMLTable&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/readLines"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;readLines&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/base/url"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;url&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/which"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;which&lt;/span&gt;&lt;/a&gt;=&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; stringsAsFactors=F&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/names"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;names&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;participants&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/c"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;c&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"Name"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Country"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Organisation"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Correct typo and shortcut&lt;/span&gt;&lt;br /&gt;participants$Country &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/gsub"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;gsub&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"Kngdom"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;span style="color: blue;"&gt;"Kingdom"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;participants$Country&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;participants$Country &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/gsub"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;gsub&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;"USA"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;span style="color: blue;"&gt;"United States"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt;participants$Country&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;participants$Country &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/factor"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;factor&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;participants$Country&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;partCountry &amp;lt;- &lt;a href="http://inside-r.org/r-doc/base/as.data.frame"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;as.data.frame&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;&lt;a href="http://inside-r.org/r-doc/stats/xtabs"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;xtabs&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt; ~ Country&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/utils/data"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;data&lt;/span&gt;&lt;/a&gt;=participants&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/base/library"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;library&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;googleVis&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-style: italic;"&gt;## Please note the option gvis.editor requires googleVis version &amp;gt;= 0.2.9&lt;/span&gt;&lt;br /&gt;G &amp;lt;- gvisGeoChart&lt;span style="color: #009900;"&gt;(&lt;/span&gt;partCountry&lt;span style="color: #339933;"&gt;,&lt;/span&gt;&lt;span style="color: blue;"&gt;"Country"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;"Freq"&lt;/span&gt;&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;a href="http://inside-r.org/r-doc/base/options"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;options&lt;/span&gt;&lt;/a&gt;=&lt;a href="http://inside-r.org/r-doc/base/list"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;list&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;gvis.editor=&lt;span style="color: blue;"&gt;"Edit me"&lt;/span&gt;&lt;span style="color: #009900;"&gt;)&lt;/span&gt; &lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://inside-r.org/r-doc/graphics/plot"&gt;&lt;span style="color: #003399; font-weight: bold;"&gt;plot&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #009900;"&gt;(&lt;/span&gt;G&lt;span style="color: #009900;"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.inside-r.org/pretty-r" title="Created by Pretty R at inside-R.org"&gt;Created by Pretty R at inside-R.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9065396442320388284-1617200107469328133?l=lamages.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lamages.blogspot.com/feeds/1617200107469328133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lamages.blogspot.com/2011/09/googlevis-029.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1617200107469328133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9065396442320388284/posts/default/1617200107469328133'/><link rel='alternate' type='text/html' href='http://lamages.blogspot.com/2011/09/googlevis-029.html' title='googleVis 0.2.9'/><author><name>Markus Gesmann</name><uri>https://profiles.google.com/118201313972528070577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-JwhCKZmguQs/AAAAAAAAAAI/AAAAAAAAAGM/_SVAzcdLWRc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
