<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/accessing-patent-data-with-the-patentsview-package/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://ropensci.org/blog/blog/2017/09/19/patentsview"> rOpenSci Blog</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<h2>Why care about patents?</h2>
<p><strong>1. Patents play a critical role in incentivizing innovation, without<br>
which we wouldn't have much of the technology we rely on everyday</strong></p>
<p>What does your iPhone, Google's PageRank algorithm, and a butter<br>
substitute called Smart Balance all have in common?</p>
<p></p>
<p><span><br>
<img src="https://i1.wp.com/ropensci.org/assets/blog-images/2017-09-19-patentsview/iphone.png?w=15%25" data-recalc-dims="1"><br>
<img src="https://i1.wp.com/ropensci.org/assets/blog-images/2017-09-19-patentsview/google.jpg?w=25%25" data-recalc-dims="1"><br>
<img src="https://i0.wp.com/ropensci.org/assets/blog-images/2017-09-19-patentsview/butter.png?w=25%25" data-recalc-dims="1"><br>
</span></p>
<p>…They all probably wouldn't be here if not for patents. A patent<br>
provides its owner with the ability to make money off of something that<br>
they invented, without having to worry about someone else copying their<br>
technology. Think Apple would spend millions of dollars developing the<br>
iPhone if Samsung could just come along and <a rel="nofollow" href="http://www.reuters.com/article/us-apple-samsung-elec-appeal-idUSKCN1271LF" target="_blank">rip it<br>
off</a>?<br>
Probably not.</p>
<p><strong>2. Patents offer a great opportunity for data analysis</strong></p>
<p>There are two primary reasons for this:</p>
<ul>
<li> <strong>Patent data is public</strong>. In return for the exclusive right to<br>
profit off an invention, an individual/company has to publicly<br>
disclose the details of their invention to the rest of the world.<br>
<a rel="nofollow" href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=11&f=G&l=50&co1=AND&d=PTXT&s1=dog&OS=dog&RS=dog" target="_blank">Examples of those<br>
details</a><br>
include the patent's title, abstract, technology classification,<br>
assigned organizations, etc.</li>
<li> <strong>Patent data can answer questions that people care about</strong>.<br>
Companies (especially big ones like IBM and Google) have a vested<br>
interest in extracting insights from patents, and spend a lot of<br>
time/resources trying figure out how to best manage their<br>
intellectual property (IP) rights. They're plagued by questions like<br>
&quot;who should I sell my underperforming patents to,&quot; &quot;which technology<br>
areas are open to new innovations,&quot; &quot;what's going to be the next big<br>
thing in the world of buttery spreads,&quot; etc. Patents offer a way to<br>
provide data-driven answers to these questions.</li>
</ul>
<p>Combined, these two things make patents a prime target for data<br>
analysis. However, until recently it was hard to get at the data inside<br>
these documents. One had to either collect it manually using the<br>
official <a rel="nofollow" href="https://en.wikipedia.org/wiki/United_States_Patent_and_Trademark_Office" target="_blank">United States Patent and Trademark<br>
Office</a><br>
(USPTO) <a rel="nofollow" href="http://patft.uspto.gov/netahtml/PTO/search-adv.htm" target="_blank">search<br>
engine</a>, or figure<br>
out a way to download, parse, and model huge XML data dumps. Enter<br>
PatentsView.</p>
<h2>PatentsView and the <code>patentsview</code> package</h2>
<p><a rel="nofollow" href="http://www.patentsview.org/web/#viz/relationships" target="_blank">PatentsView</a> is one<br>
of USPTO's new initiatives intended to increase the usability and value<br>
of patent data. One feature of this project is a publicly accessible API<br>
that makes it easy to programmatically interact with the data. A few of<br>
the reasons why I like the API (and PatentsView more generally):</p>
<ul>
<li> The API is free (no credential required) and currently doesn't<br>
impose rate limits/bandwidth throttling.</li>
<li> The project offers <a rel="nofollow" href="http://www.patentsview.org/download/" target="_blank">bulk downloads of patent<br>
data</a> on their website (in a<br>
flat file format), for those who want to be closest to the data.</li>
<li> Both the API and the bulk download data contain disambiguated<br>
entities such as inventors, assignees, organizations, etc. In other<br>
words, the API will tell you whether it thinks that John Smith on<br>
patent X is the same person as John Smith on patent Y. <sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/09/19/patentsview#fn1" target="_blank">1</a></sup></li>
</ul>
<p>The <code>patentsview</code> R package is a wrapper around the PatentsView API. It<br>
contains a function that acts as a client to the API (<code>search_pv()</code>) as<br>
well as several supporting functions. Full documentation of the package<br>
can be found on its<br>
<a rel="nofollow" href="https://ropensci.github.io/patentsview/index.html" target="_blank">website</a>.</p>
<h2>Installation</h2>
<p>You can install the stable version of <code>patentsview</code> from CRAN:</p>
<div>
<pre><code data-lang="text"><span></span>install.packages(&quot;patentsview&quot;)
</code></pre>
</div>
<p>Or get the development version from GitHub:</p>
<div>
<pre><code data-lang="text"><span></span>if (!require(devtools)) install.packages(&quot;devtools&quot;)

devtools::install_github(&quot;ropensci/patentsview&quot;)
</code></pre>
</div>
<h2>Getting started</h2>
<p>The package has one main function, <code>search_pv()</code>, that makes it easy to<br>
send requests to the API. There are two parameters to <code>search_pv()</code> that<br>
you're going to want to think about just about every time you call it –<br>
<code>query</code> and <code>fields</code>. You tell the API how you want to filter the patent<br>
data with <code>query</code>, and which fields you want to retrieve with<br>
<code>fields</code>. <sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/09/19/patentsview#fn2" target="_blank">2</a></sup></p>
<h3><code>query</code></h3>
<p>Your query has to use the <a rel="nofollow" href="http://www.patentsview.org/api/query-language.html" target="_blank">PatentsView query<br>
language</a>, which is<br>
a JSON-based syntax that is similar to the one used by Lucene. You can<br>
write the query directly and pass it as a string to <code>search_pv()</code>:</p>
<div>
<pre><code data-lang="text"><span></span>library(patentsview)

qry_1 &lt;- '{&quot;_gt&quot;:{&quot;patent_year&quot;:2007}}'
search_pv(query = qry_1, fields = NULL) # This will retrieve a default set of fields
#> $data
#> #### A list with a single data frame on the patent data level:
#>
#> List of 1
#>  $ patents:'data.frame': 25 obs. of  3 variables:
#>   ..$ patent_id    : chr [1:25] &quot;7313829&quot; ...
#>   ..$ patent_number: chr [1:25] &quot;7313829&quot; ...
#>   ..$ patent_title : chr [1:25] &quot;Sealing device for body suit and sealin&quot;..
#>
#> $query_results
#> #### Distinct entity counts across all downloadable pages of output:
#>
#> total_patent_count = 100,000
</code></pre>
</div>
<p>…Or you can use the domain specific language (DSL) provided in the<br>
<code>patentsview</code> package to help you write the query:</p>
<div>
<pre><code data-lang="text"><span></span>qry_2 &lt;- qry_funs$gt(patent_year = 2007) # All DSL functions are in the qry_funs list
qry_2 # qry_2 is the same as qry_1
#> {&quot;_gt&quot;:{&quot;patent_year&quot;:2007}}

search_pv(query = qry_2)
#> $data
#> #### A list with a single data frame on the patent data level:
#>
#> List of 1
#>  $ patents:'data.frame': 25 obs. of  3 variables:
#>   ..$ patent_id    : chr [1:25] &quot;7313829&quot; ...
#>   ..$ patent_number: chr [1:25] &quot;7313829&quot; ...
#>   ..$ patent_title : chr [1:25] &quot;Sealing device for body suit and sealin&quot;..
#>
#> $query_results
#> #### Distinct entity counts across all downloadable pages of output:
#>
#> total_patent_count = 100,000
</code></pre>
</div>
<p><code>qry_1</code> and <code>qry_2</code> will result in the same HTTP call to the API. Both<br>
queries search for patents in USPTO that were published after 2007.<br>
There are three gotchas to look out for when writing a query:</p>
<ol>
<li> <strong>Field is queryable.</strong> The API has 7 endpoints (the default<br>
endpoint is &quot;patents&quot;), and each endpoint has its own set of fields<br>
that you can filter on. <em>The fields that you can filter on are not<br>
necessarily the same as the ones that you can retrieve.</em> In other<br>
words, the fields that you can include in <code>query</code> (e.g.,<br>
<code>patent_year</code>) are not necessarily the same as those that you can<br>
include in <code>fields</code>. To see which fields you can query on, look in<br>
the <code>fieldsdf</code> data frame (<code>View(patentsview::fieldsdf)</code>) for fields<br>
that have a &quot;y&quot; indicator in their <code>can_query</code> column for your given<br>
endpoint.</li>
<li> <strong>Correct data type for field.</strong> If you're filtering on a field in<br>
your query, you have to make sure that the value you are filtering<br>
on is consistent with the field's data type. For example,<br>
<code>patent_year</code> has type &quot;integer,&quot; so if you pass 2007 as a string<br>
then you're going to get an error (<code>patent_year = 2007</code> is good,<br>
<code>patent_year = &quot;2007&quot;</code> is no good). You can find a field's data type<br>
in the <code>fieldsdf</code> data frame.</li>
<li> <strong>Comparison function works with field's data type.</strong> The comparison<br>
function(s) that you use (e.g., the greater-than function shown<br>
above, <code>qry_funs$gt()</code>) must be consistent with the field's data<br>
type. For example, you can't use the &quot;contains&quot; function on fields<br>
of type &quot;integer&quot; (<code>qry_funs$contains(patent_year = 2007)</code> will<br>
throw an error). See <code>?qry_funs</code> for more details.</li>
</ol>
<p>In short, use the <code>fieldsdf</code> data frame when you write a query and you<br>
should be fine. Check out the <a rel="nofollow" href="https://ropensci.github.io/patentsview/articles/writing-queries.html" target="_blank">writing queries<br>
vignette</a><br>
for more details.</p>
<h3><code>fields</code></h3>
<p>Up until now we have been using the default value for <code>fields</code>. This<br>
results in the API giving us some small set of default fields. Let's see<br>
about retrieving some more fields:</p>
<div>
<pre><code data-lang="text"><span></span>search_pv(
  query = qry_funs$gt(patent_year = 2007),
  fields = c(&quot;patent_abstract&quot;, &quot;patent_average_processing_time&quot;,
             &quot;inventor_first_name&quot;, &quot;inventor_total_num_patents&quot;)
)
#> $data
#> #### A list with a single data frame (with list column(s) inside) on the patent data level:
#>
#> List of 1
#>  $ patents:'data.frame': 25 obs. of  3 variables:
#>   ..$ patent_abstract               : chr [1:25] &quot;A sealing device for a&quot;..
#>   ..$ patent_average_processing_time: chr [1:25] &quot;1324&quot; ...
#>   ..$ inventors                     :List of 25
#>
#> $query_results
#> #### Distinct entity counts across all downloadable pages of output:
#>
#> total_patent_count = 100,000
</code></pre>
</div>
<p>The fields that you can retrieve depends on the endpoint that you are<br>
hitting. We've been using the &quot;patents&quot; endpoint thus far, so all of<br>
these are retrievable:<br>
<code>fieldsdf[fieldsdf$endpoint == &quot;patents&quot;, &quot;field&quot;]</code>. You can also use<br>
<code>get_fields()</code> to list the retrievable fields for a given endpoint:</p>
<div>
<pre><code data-lang="text"><span></span>search_pv(
  query = qry_funs$gt(patent_year = 2007),
  fields = get_fields(endpoint = &quot;patents&quot;, groups = c(&quot;patents&quot;, &quot;inventors&quot;))
)
#> $data
#> #### A list with a single data frame (with list column(s) inside) on the patent data level:
#>
#> List of 1
#>  $ patents:'data.frame': 25 obs. of  31 variables:
#>   ..$ patent_abstract                       : chr [1:25] &quot;A sealing devi&quot;..
#>   ..$ patent_average_processing_time        : chr [1:25] &quot;1324&quot; ...
#>   ..$ patent_date                           : chr [1:25] &quot;2008-01-01&quot; ...
#>   ..$ patent_firstnamed_assignee_city       : chr [1:25] &quot;Cambridge&quot; ...
#>   ..$ patent_firstnamed_assignee_country    : chr [1:25] &quot;US&quot; ...
#>   ..$ patent_firstnamed_assignee_id         : chr [1:25] &quot;b9fc6599e3d60c&quot;..
#>   ..$ patent_firstnamed_assignee_latitude   : chr [1:25] &quot;42.3736&quot; ...
#>   ..$ patent_firstnamed_assignee_location_id: chr [1:25] &quot;42.3736158|-71&quot;..
#>   ..$ patent_firstnamed_assignee_longitude  : chr [1:25] &quot;-71.1097&quot; ...
#>   ..$ patent_firstnamed_assignee_state      : chr [1:25] &quot;MA&quot; ...
#>   ..$ patent_firstnamed_inventor_city       : chr [1:25] &quot;Lucca&quot; ...
#>   ..$ patent_firstnamed_inventor_country    : chr [1:25] &quot;IT&quot; ...
#>   ..$ patent_firstnamed_inventor_id         : chr [1:25] &quot;6416028-3&quot; ...
#>   ..$ patent_firstnamed_inventor_latitude   : chr [1:25] &quot;43.8376&quot; ...
#>   ..$ patent_firstnamed_inventor_location_id: chr [1:25] &quot;43.8376211|10.&quot;..
#>   ..$ patent_firstnamed_inventor_longitude  : chr [1:25] &quot;10.4951&quot; ...
#>   ..$ patent_firstnamed_inventor_state      : chr [1:25] &quot;Tuscany&quot; ...
#>   ..$ patent_id                             : chr [1:25] &quot;7313829&quot; ...
#>   ..$ patent_kind                           : chr [1:25] &quot;B1&quot; ...
#>   ..$ patent_number                         : chr [1:25] &quot;7313829&quot; ...
#>   ..$ patent_num_cited_by_us_patents        : chr [1:25] &quot;5&quot; ...
#>   ..$ patent_num_claims                     : chr [1:25] &quot;25&quot; ...
#>   ..$ patent_num_combined_citations         : chr [1:25] &quot;35&quot; ...
#>   ..$ patent_num_foreign_citations          : chr [1:25] &quot;0&quot; ...
#>   ..$ patent_num_us_application_citations   : chr [1:25] &quot;0&quot; ...
#>   ..$ patent_num_us_patent_citations        : chr [1:25] &quot;35&quot; ...
#>   ..$ patent_processing_time                : chr [1:25] &quot;792&quot; ...
#>   ..$ patent_title                          : chr [1:25] &quot;Sealing device&quot;..
#>   ..$ patent_type                           : chr [1:25] &quot;utility&quot; ...
#>   ..$ patent_year                           : chr [1:25] &quot;2008&quot; ...
#>   ..$ inventors                             :List of 25
#>
#> $query_results
#> #### Distinct entity counts across all downloadable pages of output:
#>
#> total_patent_count = 100,000
</code></pre>
</div>
<h2>Example</h2>
<p>Let's look at a quick example of pulling and analyzing patent data.<br>
We'll look at patents from the last ten years that are classified below<br>
the <a rel="nofollow" href="https://worldwide.espacenet.com/classification#!/CPC=H04L63/02" target="_blank">H04L63/00 CPC<br>
code</a>.<br>
Patents in this area relate to &quot;network architectures or network<br>
communication protocols for separating internal from external<br>
traffic.&quot; <sup><a rel="nofollow" href="http://ropensci.org/blog/blog/2017/09/19/patentsview#fn3" target="_blank">3</a></sup> CPC codes offer a quick and dirty way to find patents of<br>
interest, though getting a sense of their hierarchy can be tricky.</p>
<ol>
<li> Download the data</li>
</ol>
<p></p>
<div>
<pre><code data-lang="text"><span></span>library(patentsview)

# Write a query:
query &lt;- with_qfuns( # with_qfuns is basically just: with(qry_funs, ...)
  and(
    begins(cpc_subgroup_id = 'H04L63/02'),
    gte(patent_year = 2007)
  )
)

# Create a list of fields:
fields &lt;- c(
  c(&quot;patent_number&quot;, &quot;patent_year&quot;),
  get_fields(endpoint = &quot;patents&quot;, groups = c(&quot;assignees&quot;, &quot;cpcs&quot;))
)

# Send HTTP request to API's server:
pv_res &lt;- search_pv(query = query, fields = fields, all_pages = TRUE)
</code></pre>
</div>
<ol>
<li> See where the patents are coming from (geographically)</li>
</ol>
<p></p>
<div>
<pre><code data-lang="text"><span></span>library(leaflet)
library(htmltools)
library(dplyr)
library(tidyr)

data &lt;-
  pv_res$data$patents %>%
    unnest(assignees) %>%
    select(assignee_id, assignee_organization, patent_number,
           assignee_longitude, assignee_latitude) %>%
    group_by_at(vars(-matches(&quot;pat&quot;))) %>%
    mutate(num_pats = n()) %>%
    ungroup() %>%
    select(-patent_number) %>%
    distinct() %>%
    mutate(popup = paste0(&quot;<font color="'Black'">&quot;,
htmlEscape(assignee_organization), &quot;<br><br>Patents:&quot;,
num_pats, &quot;</font>&quot;)) %>%
    mutate_at(vars(matches(&quot;_l&quot;)), as.numeric) %>%
    filter(!is.na(assignee_id))

leaflet(data) %>%
  addProviderTiles(providers$CartoDB.DarkMatterNoLabels) %>%
  addCircleMarkers(lng = ~assignee_longitude, lat = ~assignee_latitude,
                   popup = ~popup, ~sqrt(num_pats), color = &quot;yellow&quot;)
</code></pre>
</div>
<p><img alt="" src="https://i1.wp.com/ropensci.org/assets/blog-images/2017-09-19-patentsview/unnamed-chunk-9-1.png?w=456" data-recalc-dims="1"></p>
<p></p>
<ol>
<li> Plot the growth of the field's topics over time</li>
</ol>
<p></p>
<div>
<pre><code data-lang="text"><span></span>library(ggplot2)
library(RColorBrewer)

data &lt;-
  pv_res$data$patents %>%
    unnest(cpcs) %>%
    filter(cpc_subgroup_id != &quot;H04L63/02&quot;) %>% # remove patents categorized into only top-level category of H04L63/02
    mutate(
      title = case_when(
        grepl(&quot;filtering&quot;, .$cpc_subgroup_title, ignore.case = T) ~
          &quot;Filtering policies&quot;,
        .$cpc_subgroup_id %in% c(&quot;H04L63/0209&quot;, &quot;H04L63/0218&quot;) ~
          &quot;Architectural arrangements&quot;,
        grepl(&quot;Firewall traversal&quot;, .$cpc_subgroup_title, ignore.case = T) ~
          &quot;Firewall traversal&quot;,
        TRUE ~
          .$cpc_subgroup_title
      )
    ) %>%
    mutate(title = gsub(&quot;.*(?=-)-&quot;, &quot;&quot;, title, perl = TRUE)) %>%
    group_by(title, patent_year) %>%
    count() %>%
    ungroup() %>%
    mutate(patent_year = as.numeric(patent_year))

ggplot(data = data) +
  geom_smooth(aes(x = patent_year, y = n, colour = title), se = FALSE) +
  scale_x_continuous(&quot;\nPublication year&quot;, limits = c(2007, 2016),
                     breaks = 2007:2016) +
  scale_y_continuous(&quot;Patents\n&quot;, limits = c(0, 700)) +
  scale_colour_manual(&quot;&quot;, values = brewer.pal(5, &quot;Set2&quot;)) +
  theme_bw() + # theme inspired by https://hrbrmstr.github.io/hrbrthemes/
  theme(panel.border = element_blank(), axis.ticks = element_blank())
</code></pre>
</div>
<p><img alt="" src="https://i2.wp.com/ropensci.org/assets/blog-images/2017-09-19-patentsview/unnamed-chunk-10-1.png?w=456" data-recalc-dims="1"></p>
<h2>Learning more</h2>
<p>For analysis examples that go into a little more depth, check out the<br>
<a rel="nofollow" href="https://ropensci.github.io/patentsview/articles/citation-networks.html" target="_blank">data applications<br>
vignettes</a><br>
on the package's website. If you're just interested in <code>search_pv()</code>,<br>
there are<br>
<a rel="nofollow" href="https://ropensci.github.io/patentsview/articles/examples.html" target="_blank">examples</a><br>
on the site for that as well. To contribute to the package or report an<br>
issue, check out the <a rel="nofollow" href="https://github.com/ropensci/patentsview/issues" target="_blank">issues page on<br>
GitHub</a>.</p>
<h2>Acknowledgments</h2>
<p>I'd like to thank the package's two reviewers, <a rel="nofollow" href="https://github.com/poldham" target="_blank">Paul<br>
Oldham</a> and <a rel="nofollow" href="http://blog.haunschmid.name/" target="_blank">Verena<br>
Haunschmid</a>, for taking the time to review<br>
the package and providing helpful feedback. I'd also like to thank<br>
<a rel="nofollow" href="http://www.masalmon.eu/" target="_blank">Maëlle Salmon</a> for shepherding the package<br>
along the rOpenSci review process, as well <a rel="nofollow" href="https://scottchamberlain.info/" target="_blank">Scott<br>
Chamberlain</a> and <a rel="nofollow" href="https://twitter.com/stefaniebutland" target="_blank">Stefanie<br>
Butland</a> for their miscellaneous<br>
help.</p>
<div>
<hr>
<ol>
<li>
<p>This is both good and bad, as there are errors in the disambiguation. The algorithm that is responsible for the disambiguation was created by the winner of the <a rel="nofollow" href="http://www.patentsview.org/workshop/" target="_blank">PatentsView Inventor Disambiguation Technical Workshop</a>. <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/09/19/patentsview#fnref1" target="_blank">↩</a></p>
</li>
<li>
<p>These two parameters end up getting translated into a MySQL query by the API's server, which then gets sent to a back-end database. <code>query</code> and <code>fields</code> are used to create the query's <code>WHERE</code> and <code>SELECT</code> clauses, respectively. <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/09/19/patentsview#fnref2" target="_blank">↩</a></p>
</li>
<li>
<p>There is a slightly more in-depth definition that says that these are patents &quot;related to the (logical) separation of traffic/(sub-) networks to achieve protection.&quot; <a rel="nofollow" rev="footnote" href="http://ropensci.org/blog/blog/2017/09/19/patentsview#fnref3" target="_blank">↩</a></p>
</li>
</ol>
</div>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://ropensci.org/blog/blog/2017/09/19/patentsview"> rOpenSci Blog</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/-AA8GCkGJMs" height="1"></a></div>