

{"id":11694,"date":"2018-12-31T07:36:32","date_gmt":"2018-12-31T12:36:32","guid":{"rendered":"https:\/\/rud.is\/b\/?p=11694"},"modified":"2018-12-31T07:36:32","modified_gmt":"2018-12-31T12:36:32","slug":"exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/","title":{"rendered":"Exploring 2018 R-bloggers &#038; R Weekly Posts with Feedly &#038; the &#8216;seymour&#8217; package"},"content":{"rendered":"<p>Well, 2018 has flown by and today seems like an appropriate time to take a look at the landscape of R bloggerdom as seen through the eyes of readers of <a href=\"https:\/\/www.r-bloggers.com\/\">R-bloggers<\/a> and <a href=\"https:\/\/rweekly.org\/\">R Weekly<\/a>. We&#8217;ll do this via a new package designed to make it easier to treat <a href=\"https:\/\/feedly.com\/\">Feedly<\/a> as a data source: <code>seymour<\/code> [<a href=\"https:\/\/gitlab.com\/hrbrmstr\/seymour\">GL<\/a> | <a href=\"https:\/\/github.com\/hrbrmstr\/seymour\">GH<\/a>] (which is a pun-ified name based on a well-known phrase from <em>Little Shop of Horrors<\/em>).<\/p>\n<p>The <code>seymour<\/code> package builds upon an introductory Feedly API blog post from <a href=\"https:\/\/rud.is\/b\/2018\/04\/04\/exploring-r-bloggers-posts-with-the-feedly-api\/\">back in April 2018<\/a> and covers <em>most<\/em> of the &#8220;getters&#8221; in the API (i.e. you won&#8217;t be adding anything to or modifying anything in Feedly through this package unless you PR into it with said functions). An impetus for finally creating the package came about when I realized that you don&#8217;t need a Feedly account to use the search or stream endpoints. You <em>do<\/em> get more data back if you have a <a href=\"https:\/\/developer.feedly.com\/v3\/developer\/\">developer token<\/a> and can also access your own custom Feedly components if you have one. If you are a &#8220;knowledge worker&#8221; and do not have a Feedly account (and, really, a Feedly Pro account) you are missing out. But, this isn&#8217;t a rah-rah post about Feedly, it&#8217;s a rah-rah post about R! Onwards!<\/p>\n<h3>Feeling Out The Feeds<\/h3>\n<p>There are a bunch of different ways to get Feedly metadata about an RSS feed. One easy way is to just use the RSS feed URL itself:<\/p>\n<pre><code class=\"language-r\">library(seymour) # git[la|hu]b\/hrbrmstr\/seymour\nlibrary(hrbrthemes) # git[la|hu]b\/hrbrmstr\/hrbrthemes\nlibrary(lubridate)\nlibrary(tidyverse)\n<\/code><\/pre>\n<pre><code class=\"language-r\">r_bloggers &lt;- feedly_feed_meta(\"http:\/\/feeds.feedburner.com\/RBloggers\")\nr_weekly &lt;- feedly_feed_meta(\"https:\/\/rweekly.org\/atom.xml\")\nr_weekly_live &lt;- feedly_feed_meta(\"https:\/\/feeds.feedburner.com\/rweeklylive\")\n\nglimpse(r_bloggers)\n## Observations: 1\n## Variables: 14\n## $ feedId      &lt;chr&gt; \"feed\/http:\/\/feeds.feedburner.com\/RBloggers\"\n## $ id          &lt;chr&gt; \"feed\/http:\/\/feeds.feedburner.com\/RBloggers\"\n## $ title       &lt;chr&gt; \"R-bloggers\"\n## $ subscribers &lt;int&gt; 24518\n## $ updated     &lt;dbl&gt; 1.546227e+12\n## $ velocity    &lt;dbl&gt; 44.3\n## $ website     &lt;chr&gt; \"https:\/\/www.r-bloggers.com\"\n## $ topics      &lt;I(list)&gt; data sci....\n## $ partial     &lt;lgl&gt; FALSE\n## $ iconUrl     &lt;chr&gt; \"https:\/\/storage.googleapis.com\/test-site-assets\/X...\n## $ visualUrl   &lt;chr&gt; \"https:\/\/storage.googleapis.com\/test-site-assets\/X...\n## $ language    &lt;chr&gt; \"en\"\n## $ contentType &lt;chr&gt; \"longform\"\n## $ description &lt;chr&gt; \"Daily news and tutorials about R, contributed by ...\n\nglimpse(r_weekly)\n## Observations: 1\n## Variables: 13\n## $ feedId      &lt;chr&gt; \"feed\/https:\/\/rweekly.org\/atom.xml\"\n## $ id          &lt;chr&gt; \"feed\/https:\/\/rweekly.org\/atom.xml\"\n## $ title       &lt;chr&gt; \"RWeekly.org - Blogs to Learn R from the Community\"\n## $ subscribers &lt;int&gt; 876\n## $ updated     &lt;dbl&gt; 1.546235e+12\n## $ velocity    &lt;dbl&gt; 1.1\n## $ website     &lt;chr&gt; \"https:\/\/rweekly.org\/\"\n## $ topics      &lt;I(list)&gt; data sci....\n## $ partial     &lt;lgl&gt; FALSE\n## $ iconUrl     &lt;chr&gt; \"https:\/\/storage.googleapis.com\/test-site-assets\/2...\n## $ visualUrl   &lt;chr&gt; \"https:\/\/storage.googleapis.com\/test-site-assets\/2...\n## $ contentType &lt;chr&gt; \"longform\"\n## $ language    &lt;chr&gt; \"en\"\n\nglimpse(r_weekly_live)\n## Observations: 1\n## Variables: 9\n## $ id          &lt;chr&gt; \"feed\/https:\/\/feeds.feedburner.com\/rweeklylive\"\n## $ feedId      &lt;chr&gt; \"feed\/https:\/\/feeds.feedburner.com\/rweeklylive\"\n## $ title       &lt;chr&gt; \"R Weekly Live: R Focus\"\n## $ subscribers &lt;int&gt; 1\n## $ updated     &lt;dbl&gt; 1.5461e+12\n## $ velocity    &lt;dbl&gt; 14.7\n## $ website     &lt;chr&gt; \"https:\/\/rweekly.org\/live\"\n## $ language    &lt;chr&gt; \"en\"\n## $ description &lt;chr&gt; \"Live Updates from R Weekly\"\n<\/code><\/pre>\n<p>Feedly uses some special terms, one of which (above) is <code>velocity<\/code>. &#8220;Velocity&#8221; is simply the average number of articles published weekly (Feedly&#8217;s platform updates that every few weeks for each feed). R-bloggers has over 24,000 Feedly subscribers so any post-rankings we do here should be fairly representative. I included both the &#8220;live&#8221; and the week-based R Weekly feeds as I wanted to compare post coverage between R-bloggers and R Weekly in terms of raw content.<\/p>\n<p>On the other hand, R Weekly&#8217;s &#8220;weekly&#8221; RSS feed has less than 1,000 subscribers. WAT?! While I have mostly nothing against R-bloggers-proper I heartily encourage ardent readers to also subscribe to R Weekly and <em>perhaps even consider switching to it<\/em> (or at least adding the <a href=\"https:\/\/live.rweekly.org\/feedlist.json\">individual blog feeds they monitor<\/a> to your own Feedly). It wasn&#8217;t until the Feedly API that I had any idea of how many folks were really viewing my R blog posts since we must provide a full post RSS feed to R-bloggers and get very little in return (at least in terms of data). R Weekly uses a link counter but redirects all clicks to the blog author&#8217;s site where we can use logs or analytics platforms to measure engagement. R Weekly is also run by a group of volunteers (more eyes == more posts they catch!) and has a <a href=\"https:\/\/www.patreon.com\/rweekly\/overview\">Patreon<\/a> where the current combined weekly net is likely not enough to buy each volunteer a latte. No ads, a great team and direct engagement stats for the community of R bloggers seems like a great deal for $1.00 USD. If you weren&#8217;t persuaded by the above rant, then perhaps at least consider installing <a href=\"https:\/\/github.com\/hrbrmstr\/aggregators-auto-redirect\">this<\/a> (from source that you control).<\/p>\n<p>Lastly, I believe I&#8217;m that &#8220;<code>1<\/code>&#8221; subscriber to R Weekly Live O_o. But, I digress.<\/p>\n<p>We&#8217;ve got the <code>feedId<\/code>s (which can be used as &#8220;stream&#8221; ids) so let&#8217;s get cracking!<\/p>\n<h3>Binding Up The Posts<\/h3>\n<p>We need to use the <code>feedId<\/code> in calls to <code>feedly_stream()<\/code> to get the individual posts. The API <em>claims<\/em> there&#8217;s a temporal parameter that allows one to get posts only after a certain date but I couldn&#8217;t get it to work (PRs are welcome on any community source code portal you&#8217;re most comfortable in if you&#8217;re craftier than I am). As a result, we need to make a guess as to how many calls we need to make for two of the three feeds. Basic maths of <code>44 * 52 \/ 1000<\/code> suggests ~3 should suffice for R Weekly (live) and R-bloggers but let&#8217;s do 5 to be safe. We should be able to get R Weekly (weekly) in one go.<\/p>\n<pre><code class=\"language-r\">r_weekly_wk &lt;- feedly_stream(r_weekly$feedId)\n\nrange(r_weekly_wk$items$published) # my preview of this said it got back to 2016!\n## [1] \"2016-05-20 20:00:00 EDT\" \"2018-12-30 19:00:00 EST\"\n\n# NOTE: If this were more than 3 I'd use a loop\/iterator\n# In reality, I should make a helper function to do this for you (PRs welcome)\n\nr_blog_1 &lt;- feedly_stream(r_bloggers$feedId)\nr_blog_2 &lt;- feedly_stream(r_bloggers$feedId, continuation = r_blog_1$continuation)\nr_blog_3 &lt;- feedly_stream(r_bloggers$feedId, continuation = r_blog_2$continuation)\n\nr_weekly_live_1 &lt;- feedly_stream(r_weekly_live$feedId)\nr_weekly_live_2 &lt;- feedly_stream(r_weekly_live$feedId, continuation = r_weekly_live_1$continuation)\nr_weekly_live_3 &lt;- feedly_stream(r_weekly_live$feedId, continuation = r_weekly_live_2$continuation)\n\nbind_rows(r_blog_1$items, r_blog_2$items, r_blog_3$items) %&gt;% \n  filter(published &gt;= as.Date(\"2018-01-01\")) -&gt; r_blog_stream\n\nbind_rows(r_weekly_live_1$items, r_weekly_live_2$items, r_weekly_live_3$items) %&gt;% \n  filter(published &gt;= as.Date(\"2018-01-01\")) -&gt; r_weekly_live_stream\n\nr_weekly_wk_stream &lt;- filter(r_weekly_wk$items, published &gt;= as.Date(\"2018-01-01\"))\n<\/code><\/pre>\n<p>Let&#8217;s take a look:<\/p>\n<pre><code class=\"language-r\">glimpse(r_weekly_wk_stream)\n## Observations: 54\n## Variables: 27\n## $ id                  &lt;chr&gt; \"2nIALmjjlFcpPJKakm2k8hjka0FzpApixM7HHu8B0...\n## $ originid            &lt;chr&gt; \"https:\/\/rweekly.org\/2018-53\", \"https:\/\/rw...\n## $ fingerprint         &lt;chr&gt; \"114357f1\", \"199f78d0\", \"9adc236e\", \"63f99...\n## $ title               &lt;chr&gt; \"R Weekly 2018-53 vroom, Classification\", ...\n## $ updated             &lt;dttm&gt; 2018-12-30 19:00:00, 2018-12-23 19:00:00,...\n## $ crawled             &lt;dttm&gt; 2018-12-31 00:51:39, 2018-12-23 23:46:49,...\n## $ published           &lt;dttm&gt; 2018-12-30 19:00:00, 2018-12-23 19:00:00,...\n## $ alternate           &lt;list&gt; [&lt;https:\/\/rweekly.org\/2018-53.html, text\/...\n## $ canonicalurl        &lt;chr&gt; \"https:\/\/rweekly.org\/2018-53.html\", \"https...\n## $ unread              &lt;lgl&gt; TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, F...\n## $ categories          &lt;list&gt; [&lt;user\/c45e5b02-5a96-464c-bf77-4eea75409c...\n## $ engagement          &lt;int&gt; 1, 5, 5, 3, 2, 3, 1, 2, 3, 2, 4, 3, 2, 2, ...\n## $ engagementrate      &lt;dbl&gt; 0.33, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...\n## $ recrawled           &lt;dbl&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ tags                &lt;list&gt; [NULL, NULL, NULL, NULL, NULL, NULL, NULL...\n## $ content_content     &lt;chr&gt; \"&lt;p&gt;Hello and welcome to this new issue!&lt;\/...\n## $ content_direction   &lt;chr&gt; \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", ...\n## $ origin_streamid     &lt;chr&gt; \"feed\/https:\/\/rweekly.org\/atom.xml\", \"feed...\n## $ origin_title        &lt;chr&gt; \"RWeekly.org - Blogs to Learn R from the C...\n## $ origin_htmlurl      &lt;chr&gt; \"https:\/\/rweekly.org\/\", \"https:\/\/rweekly.o...\n## $ visual_processor    &lt;chr&gt; \"feedly-nikon-v3.1\", \"feedly-nikon-v3.1\", ...\n## $ visual_url          &lt;chr&gt; \"https:\/\/github.com\/rweekly\/image\/raw\/mast...\n## $ visual_width        &lt;int&gt; 372, 672, 1000, 1000, 1000, 1001, 1000, 10...\n## $ visual_height       &lt;int&gt; 479, 480, 480, 556, 714, 624, 237, 381, 36...\n## $ visual_contenttype  &lt;chr&gt; \"image\/png\", \"image\/png\", \"image\/gif\", \"im...\n## $ webfeeds_icon       &lt;chr&gt; \"https:\/\/storage.googleapis.com\/test-site-...\n## $ decorations_dropbox &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n\nglimpse(r_weekly_live_stream)\n## Observations: 1,333\n## Variables: 27\n## $ id                  &lt;chr&gt; \"rhkRVQ8KjjGRDQxeehIj6RRIBGntdni0ZHwPTR8B3...\n## $ originid            &lt;chr&gt; \"https:\/\/link.rweekly.org\/ckb\", \"https:\/\/l...\n## $ fingerprint         &lt;chr&gt; \"c11a0782\", \"c1897fc3\", \"c0b36206\", \"7049e...\n## $ title               &lt;chr&gt; \"Top Tweets of 2018\", \"My #Best9of2018 twe...\n## $ crawled             &lt;dttm&gt; 2018-12-29 11:11:52, 2018-12-28 11:24:22,...\n## $ published           &lt;dttm&gt; 2018-12-28 19:00:00, 2018-12-27 19:00:00,...\n## $ canonical           &lt;list&gt; [&lt;https:\/\/link.rweekly.org\/ckb, text\/html...\n## $ alternate           &lt;list&gt; [&lt;http:\/\/feedproxy.google.com\/~r\/RWeeklyL...\n## $ unread              &lt;lgl&gt; FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ...\n## $ categories          &lt;list&gt; [&lt;user\/c45e5b02-5a96-464c-bf77-4eea75409c...\n## $ tags                &lt;list&gt; [&lt;user\/c45e5b02-5a96-464c-bf77-4eea75409c...\n## $ canonicalurl        &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ ampurl              &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ cdnampurl           &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ engagement          &lt;int&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ summary_content     &lt;chr&gt; \"&lt;p&gt;maraaverick.rbind.io&lt;\/p&gt;&lt;img width=\\\"1...\n## $ summary_direction   &lt;chr&gt; \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", ...\n## $ origin_streamid     &lt;chr&gt; \"feed\/https:\/\/feeds.feedburner.com\/rweekly...\n## $ origin_title        &lt;chr&gt; \"R Weekly Live: R Focus\", \"R Weekly Live: ...\n## $ origin_htmlurl      &lt;chr&gt; \"https:\/\/rweekly.org\/live\", \"https:\/\/rweek...\n## $ visual_url          &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ visual_processor    &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ visual_width        &lt;int&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ visual_height       &lt;int&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ visual_contenttype  &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ decorations_dropbox &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ decorations_pocket  &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n\nglimpse(r_blog_stream)\n## Observations: 2,332\n## Variables: 34\n## $ id                  &lt;chr&gt; \"XGq6cYRY3hH9\/vdZr0WOJiPdAe0u6dQ2ddUFEsTqP...\n## $ keywords            &lt;list&gt; [\"R bloggers\", \"R bloggers\", \"R bloggers\"...\n## $ originid            &lt;chr&gt; \"https:\/\/datascienceplus.com\/?p=19513\", \"h...\n## $ fingerprint         &lt;chr&gt; \"2f32071a\", \"332f9548\", \"2e6f8adb\", \"3d7ed...\n## $ title               &lt;chr&gt; \"Leaf Plant Classification: Statistical Le...\n## $ crawled             &lt;dttm&gt; 2018-12-30 22:35:22, 2018-12-30 19:01:25,...\n## $ published           &lt;dttm&gt; 2018-12-30 19:26:20, 2018-12-30 13:18:00,...\n## $ canonical           &lt;list&gt; [&lt;https:\/\/www.r-bloggers.com\/leaf-plant-c...\n## $ author              &lt;chr&gt; \"Giorgio Garziano\", \"Sascha W.\", \"Economet...\n## $ alternate           &lt;list&gt; [&lt;http:\/\/feedproxy.google.com\/~r\/RBlogger...\n## $ unread              &lt;lgl&gt; TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, F...\n## $ categories          &lt;list&gt; [&lt;user\/c45e5b02-5a96-464c-bf77-4eea75409c...\n## $ entities            &lt;list&gt; [&lt;c(\"nlp\/f\/entity\/en\/-\/leaf plant classif...\n## $ engagement          &lt;int&gt; 50, 39, 482, 135, 33, 12, 13, 41, 50, 31, ...\n## $ engagementrate      &lt;dbl&gt; 1.43, 0.98, 8.76, 2.45, 0.59, 0.21, 0.22, ...\n## $ enclosure           &lt;list&gt; [NULL, NULL, NULL, NULL, &lt;c(\"https:\/\/0.gr...\n## $ tags                &lt;list&gt; [NULL, NULL, NULL, NULL, NULL, NULL, NULL...\n## $ recrawled           &lt;dbl&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ updatecount         &lt;int&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ content_content     &lt;chr&gt; \"&lt;p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div data-show-faces=\\\"...\n## $ content_direction   &lt;chr&gt; \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", ...\n## $ summary_content     &lt;chr&gt; \"CategoriesAdvanced Modeling\\nTags\\nLinear...\n## $ summary_direction   &lt;chr&gt; \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", \"ltr\", ...\n## $ origin_streamid     &lt;chr&gt; \"feed\/http:\/\/feeds.feedburner.com\/RBlogger...\n## $ origin_title        &lt;chr&gt; \"R-bloggers\", \"R-bloggers\", \"R-bloggers\", ...\n## $ origin_htmlurl      &lt;chr&gt; \"https:\/\/www.r-bloggers.com\", \"https:\/\/www...\n## $ visual_processor    &lt;chr&gt; \"feedly-nikon-v3.1\", \"feedly-nikon-v3.1\", ...\n## $ visual_url          &lt;chr&gt; \"https:\/\/i0.wp.com\/datascienceplus.com\/wp-...\n## $ visual_width        &lt;int&gt; 383, 400, NA, 286, 456, 250, 450, 456, 397...\n## $ visual_height       &lt;int&gt; 309, 300, NA, 490, 253, 247, 450, 253, 333...\n## $ visual_contenttype  &lt;chr&gt; \"image\/png\", \"image\/png\", NA, \"image\/png\",...\n## $ webfeeds_icon       &lt;chr&gt; \"https:\/\/storage.googleapis.com\/test-site-...\n## $ decorations_dropbox &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n## $ decorations_pocket  &lt;chr&gt; NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...\n<\/code><\/pre>\n<p>And also check how far into December for each did I get as of this post? (I&#8217;ll check again after the 31 and update if needed).<\/p>\n<pre><code class=\"language-r\">range(r_weekly_wk_stream$published)\n## [1] \"2018-01-07 19:00:00 EST\" \"2018-12-30 19:00:00 EST\"\n\nrange(r_blog_stream$published)\n## [1] \"2018-01-01 11:00:27 EST\" \"2018-12-30 19:26:20 EST\"\n\nrange(r_weekly_live_stream$published)\n## [1] \"2018-01-01 19:00:00 EST\" \"2018-12-28 19:00:00 EST\"\n<\/code><\/pre>\n<h3>Digging Into The <strike>Weeds<\/strike> Feeds<\/h3>\n<p>In the above glimpses there&#8217;s another special term, <code>engagement<\/code>. Feedly defines this as an <em>&#8220;indicator of how popular this entry is. The higher the number, the more readers have read, saved or shared this particular entry&#8221;<\/em>.  We&#8217;ll use this to look at the most &#8220;engaged&#8221; content in a bit. What&#8217;s noticeable from the start is that R Weekly Live has 1,333 entries and R-bloggers has 2,330 entries (so, nearly double the number of entries). Those counts are a bit of &#8220;fake news&#8221; when it comes to overall unique posts as can be seen by:<\/p>\n<pre><code class=\"language-r\">bind_rows(\n  mutate(r_weekly_live_stream, src = \"R Weekly (Live)\"),\n  mutate(r_blog_stream, src = \"R-bloggers\")\n) %&gt;% \n  mutate(wk = lubridate::week(published)) -&gt; y2018\n\nfilter(y2018, title == \"RcppArmadillo 0.9.100.5.0\") %&gt;% \n  select(src, title, originid, published) %&gt;% \n  gt::gt()\n<\/code><\/pre>\n<p><!--html_preserve--><\/p>\n<style>html {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;\n}<\/p>\n<p>#gcnbcstlpe .gt_table {\n  border-collapse: collapse;\n  margin-left: auto;\n  margin-right: auto;\n  color: #000000;\n  font-size: 16px;\n  background-color: #FFFFFF;\n  \/* table.background.color <em>\/\n  width: auto;\n  \/<\/em> table.width <em>\/\n  border-top-style: solid;\n  \/<\/em> table.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> table.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> table.border.top.color *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_heading {\n  background-color: #FFFFFF;\n  \/* heading.background.color *\/\n  border-bottom-color: #FFFFFF;\n}<\/p>\n<p>#gcnbcstlpe .gt_title {\n  color: #000000;\n  font-size: 125%;\n  \/* heading.title.font.size <em>\/\n  padding-top: 4px;\n  \/<\/em> heading.top.padding *\/\n  padding-bottom: 1px;\n  border-bottom-color: #FFFFFF;\n  border-bottom-width: 0;\n}<\/p>\n<p>#gcnbcstlpe .gt_subtitle {\n  color: #000000;\n  font-size: 85%;\n  \/* heading.subtitle.font.size <em>\/\n  padding-top: 1px;\n  padding-bottom: 4px;\n  \/<\/em> heading.bottom.padding *\/\n  border-top-color: #FFFFFF;\n  border-top-width: 0;\n}<\/p>\n<p>#gcnbcstlpe .gt_bottom_border {\n  border-bottom-style: solid;\n  \/* heading.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> heading.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> heading.border.bottom.color *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_column_spanner {\n  border-bottom-style: solid;\n  border-bottom-width: 2px;\n  border-bottom-color: #A8A8A8;\n  padding-top: 4px;\n  padding-bottom: 4px;\n}<\/p>\n<p>#gcnbcstlpe .gt_col_heading {\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* column_labels.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> column_labels.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> column_labels.font.weight *\/\n  padding: 10px;\n  margin: 10px;\n}<\/p>\n<p>#gcnbcstlpe .gt_sep_right {\n  border-right: 5px solid #FFFFFF;\n}<\/p>\n<p>#gcnbcstlpe .gt_group_heading {\n  padding: 8px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_empty_group_heading {\n  padding: 0.5px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_striped tr:nth-child(even) {\n  background-color: #f2f2f2;\n}<\/p>\n<p>#gcnbcstlpe .gt_row {\n  padding: 10px;\n  \/* row.padding *\/\n  margin: 10px;\n}<\/p>\n<p>#gcnbcstlpe .gt_stub {\n  border-right-style: solid;\n  border-right-width: 2px;\n  border-right-color: #A8A8A8;\n  text-indent: 5px;\n}<\/p>\n<p>#gcnbcstlpe .gt_stub.gt_row {\n  background-color: #FFFFFF;\n}<\/p>\n<p>#gcnbcstlpe .gt_summary_row {\n  background-color: #FFFFFF;\n  \/* summary_row.background.color <em>\/\n  padding: 6px;\n  \/<\/em> summary_row.padding <em>\/\n  text-transform: inherit;\n  \/<\/em> summary_row.text_transform *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_first_summary_row {\n  border-top-style: solid;\n  border-top-width: 2px;\n  border-top-color: #A8A8A8;\n}<\/p>\n<p>#gcnbcstlpe .gt_table_body {\n  border-top-style: solid;\n  \/* field.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> field.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> field.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> field.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> field.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> field.border.bottom.color *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_footnote {\n  font-size: 90%;\n  \/* footnote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> footnote.padding *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_sourcenote {\n  font-size: 90%;\n  \/* sourcenote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> sourcenote.padding *\/\n}<\/p>\n<p>#gcnbcstlpe .gt_center {\n  text-align: center;\n}<\/p>\n<p>#gcnbcstlpe .gt_left {\n  text-align: left;\n}<\/p>\n<p>#gcnbcstlpe .gt_right {\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n}<\/p>\n<p>#gcnbcstlpe .gt_font_normal {\n  font-weight: normal;\n}<\/p>\n<p>#gcnbcstlpe .gt_font_bold {\n  font-weight: bold;\n}<\/p>\n<p>#gcnbcstlpe .gt_font_italic {\n  font-style: italic;\n}<\/p>\n<p>#gcnbcstlpe .gt_super {\n  font-size: 65%;\n}<\/p>\n<p>#gcnbcstlpe .gt_footnote_glyph {\n  font-style: italic;\n  font-size: 65%;\n}\n<\/style>\n<div id=\"gcnbcstlpe\"><!--gt table start--><\/p>\n<table class='gt_table'>\n<tr>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>src<\/th>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>title<\/th>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>originid<\/th>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>published<\/th>\n<\/tr>\n<tbody class='gt_table_body gt_striped'>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_left'>RcppArmadillo 0.9.100.5.0<\/td>\n<td class='gt_row gt_left'>https:\/\/link.rweekly.org\/bg6                                     <\/td>\n<td class='gt_row gt_left'>2018-08-17 07:55:00<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_left'>RcppArmadillo 0.9.100.5.0<\/td>\n<td class='gt_row gt_left'>https:\/\/link.rweekly.org\/bfr                                     <\/td>\n<td class='gt_row gt_left'>2018-08-16 21:20:00<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R-bloggers     <\/td>\n<td class='gt_row gt_left'>RcppArmadillo 0.9.100.5.0<\/td>\n<td class='gt_row gt_left'>https:\/\/www.r-bloggers.com\/?guid=f8865e8a004f772bdb64e3c4763a0fe5<\/td>\n<td class='gt_row gt_left'>2018-08-17 08:00:00<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R-bloggers     <\/td>\n<td class='gt_row gt_left'>RcppArmadillo 0.9.100.5.0<\/td>\n<td class='gt_row gt_left'>https:\/\/www.r-bloggers.com\/?guid=3046299f73344a927f787322c867233b<\/td>\n<td class='gt_row gt_left'>2018-08-16 21:20:00<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!--gt table end-->\n<\/div>\n<p><!--\/html_preserve--><\/p>\n<p>Feedly has many processes going on behind the scenes to identify new entries and update entries as original sources are modified. This &#8220;duplication&#8221; (thankfully) doesn&#8217;t happen alot:<\/p>\n<pre><code class=\"language-r\">count(y2018, src, wk, title, sort=TRUE) %&gt;% \n  filter(n &gt; 1) %&gt;% \n  arrange(wk) %&gt;% \n  gt::gt() %&gt;% \n  gt::fmt_number(c(\"wk\", \"n\"), decimals = 0)\n<\/code><\/pre>\n<p><!--html_preserve--><\/p>\n<style>html {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;\n}<\/p>\n<p>#ymdqkmtxsw .gt_table {\n  border-collapse: collapse;\n  margin-left: auto;\n  margin-right: auto;\n  color: #000000;\n  font-size: 16px;\n  background-color: #FFFFFF;\n  \/* table.background.color <em>\/\n  width: auto;\n  \/<\/em> table.width <em>\/\n  border-top-style: solid;\n  \/<\/em> table.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> table.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> table.border.top.color *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_heading {\n  background-color: #FFFFFF;\n  \/* heading.background.color *\/\n  border-bottom-color: #FFFFFF;\n}<\/p>\n<p>#ymdqkmtxsw .gt_title {\n  color: #000000;\n  font-size: 125%;\n  \/* heading.title.font.size <em>\/\n  padding-top: 4px;\n  \/<\/em> heading.top.padding *\/\n  padding-bottom: 1px;\n  border-bottom-color: #FFFFFF;\n  border-bottom-width: 0;\n}<\/p>\n<p>#ymdqkmtxsw .gt_subtitle {\n  color: #000000;\n  font-size: 85%;\n  \/* heading.subtitle.font.size <em>\/\n  padding-top: 1px;\n  padding-bottom: 4px;\n  \/<\/em> heading.bottom.padding *\/\n  border-top-color: #FFFFFF;\n  border-top-width: 0;\n}<\/p>\n<p>#ymdqkmtxsw .gt_bottom_border {\n  border-bottom-style: solid;\n  \/* heading.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> heading.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> heading.border.bottom.color *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_column_spanner {\n  border-bottom-style: solid;\n  border-bottom-width: 2px;\n  border-bottom-color: #A8A8A8;\n  padding-top: 4px;\n  padding-bottom: 4px;\n}<\/p>\n<p>#ymdqkmtxsw .gt_col_heading {\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* column_labels.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> column_labels.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> column_labels.font.weight *\/\n  padding: 10px;\n  margin: 10px;\n}<\/p>\n<p>#ymdqkmtxsw .gt_sep_right {\n  border-right: 5px solid #FFFFFF;\n}<\/p>\n<p>#ymdqkmtxsw .gt_group_heading {\n  padding: 8px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_empty_group_heading {\n  padding: 0.5px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_striped tr:nth-child(even) {\n  background-color: #f2f2f2;\n}<\/p>\n<p>#ymdqkmtxsw .gt_row {\n  padding: 10px;\n  \/* row.padding *\/\n  margin: 10px;\n}<\/p>\n<p>#ymdqkmtxsw .gt_stub {\n  border-right-style: solid;\n  border-right-width: 2px;\n  border-right-color: #A8A8A8;\n  text-indent: 5px;\n}<\/p>\n<p>#ymdqkmtxsw .gt_stub.gt_row {\n  background-color: #FFFFFF;\n}<\/p>\n<p>#ymdqkmtxsw .gt_summary_row {\n  background-color: #FFFFFF;\n  \/* summary_row.background.color <em>\/\n  padding: 6px;\n  \/<\/em> summary_row.padding <em>\/\n  text-transform: inherit;\n  \/<\/em> summary_row.text_transform *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_first_summary_row {\n  border-top-style: solid;\n  border-top-width: 2px;\n  border-top-color: #A8A8A8;\n}<\/p>\n<p>#ymdqkmtxsw .gt_table_body {\n  border-top-style: solid;\n  \/* field.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> field.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> field.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> field.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> field.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> field.border.bottom.color *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_footnote {\n  font-size: 90%;\n  \/* footnote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> footnote.padding *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_sourcenote {\n  font-size: 90%;\n  \/* sourcenote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> sourcenote.padding *\/\n}<\/p>\n<p>#ymdqkmtxsw .gt_center {\n  text-align: center;\n}<\/p>\n<p>#ymdqkmtxsw .gt_left {\n  text-align: left;\n}<\/p>\n<p>#ymdqkmtxsw .gt_right {\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n}<\/p>\n<p>#ymdqkmtxsw .gt_font_normal {\n  font-weight: normal;\n}<\/p>\n<p>#ymdqkmtxsw .gt_font_bold {\n  font-weight: bold;\n}<\/p>\n<p>#ymdqkmtxsw .gt_font_italic {\n  font-style: italic;\n}<\/p>\n<p>#ymdqkmtxsw .gt_super {\n  font-size: 65%;\n}<\/p>\n<p>#ymdqkmtxsw .gt_footnote_glyph {\n  font-style: italic;\n  font-size: 65%;\n}\n<\/style>\n<div id=\"ymdqkmtxsw\"><!--gt table start--><\/p>\n<table class='gt_table'>\n<tr>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>src<\/th>\n<th class='gt_col_heading gt_right' rowspan='1' colspan='1'>wk<\/th>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>title<\/th>\n<th class='gt_col_heading gt_right' rowspan='1' colspan='1'>n<\/th>\n<\/tr>\n<tbody class='gt_table_body gt_striped'>\n<tr>\n<td class='gt_row gt_left'>R-bloggers     <\/td>\n<td class='gt_row gt_right'>3<\/td>\n<td class='gt_row gt_left'>conapomx data package                                               <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>5<\/td>\n<td class='gt_row gt_left'>R in Latin America                                                  <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>12<\/td>\n<td class='gt_row gt_left'>Truncated Poisson distributions in R and Stan by @ellis2013nz       <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>17<\/td>\n<td class='gt_row gt_left'>Regression Modeling Strategies                                      <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>18<\/td>\n<td class='gt_row gt_left'>How much work is onboarding?                                        <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>18<\/td>\n<td class='gt_row gt_left'>Survey books, courses and tools by @ellis2013nz                     <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R-bloggers     <\/td>\n<td class='gt_row gt_right'>20<\/td>\n<td class='gt_row gt_left'>Beautiful and Powerful Correlation Tables in R                      <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>24<\/td>\n<td class='gt_row gt_left'>R Consortium is soliciting your feedback on R package best practices<\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>33<\/td>\n<td class='gt_row gt_left'>RcppArmadillo 0.9.100.5.0                                           <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R-bloggers     <\/td>\n<td class='gt_row gt_right'>33<\/td>\n<td class='gt_row gt_left'>RcppArmadillo 0.9.100.5.0                                           <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R-bloggers     <\/td>\n<td class='gt_row gt_right'>39<\/td>\n<td class='gt_row gt_left'>Individual level data                                               <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>41<\/td>\n<td class='gt_row gt_left'>How R gets built on Windows                                         <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>41<\/td>\n<td class='gt_row gt_left'>R Consortium grant applications due October 31                      <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>41<\/td>\n<td class='gt_row gt_left'>The Economist&#8217;s Big Mac Index is calculated with R                  <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>42<\/td>\n<td class='gt_row gt_left'>A small logical change with big impact                              <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Weekly (Live)<\/td>\n<td class='gt_row gt_right'>42<\/td>\n<td class='gt_row gt_left'>Maryland&#8217;s Bridge Safety, reported using R                          <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R-bloggers     <\/td>\n<td class='gt_row gt_right'>47<\/td>\n<td class='gt_row gt_left'>OneR \u2013 fascinating insights through simple rules                    <\/td>\n<td class='gt_row gt_right'>2<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!--gt table end-->\n<\/div>\n<p><!--\/html_preserve--><\/p>\n<p>In fact, it happens infrequently enough that I&#8217;m going to let the &#8220;noise&#8221; stay in the data since Feedly <em>technically<\/em> is tracking some content change.<\/p>\n<p>Let&#8217;s look at the week-over-week curation counts (neither source publishes original content, so using the term &#8220;published&#8221; seems ill fitting) for each:<\/p>\n<pre><code class=\"language-r\">count(y2018, src, wk) %&gt;% \n  ggplot(aes(wk, n)) +\n  geom_segment(aes(xend=wk, yend=0, color = src), show.legend = FALSE) +\n  facet_wrap(~src, ncol=1, scales=\"free_x\") + \n  labs(\n    x = \"Week #\", y = \"# Posts\", \n    title = \"Weekly Post Curation Stats for R-bloggers &amp; R Weekly (Live)\"\n  ) +\n  theme_ft_rc(grid=\"Y\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/curation_counts-1\/\" rel=\"attachment wp-att-11699\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11699\" data-permalink=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/curation_counts-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/curation_counts-1.png?fit=1440%2C864&amp;ssl=1\" data-orig-size=\"1440,864\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"curation_counts-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/curation_counts-1.png?fit=510%2C306&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/curation_counts-1.png?resize=510%2C306&#038;ssl=1\" alt=\"week over week\" width=\"510\" height=\"306\" class=\"aligncenter size-full wp-image-11699\" \/><\/a><\/p>\n<p>Despite R-bloggers having curated more overall content, there&#8217;s plenty to read each week for consumers of either\/both aggregators.<\/p>\n<p>Speaking of consuming, let&#8217;s look at the distribution of engagement scores for both aggregators:<\/p>\n<pre><code class=\"language-r\">group_by(y2018, src) %&gt;% \n  summarise(v = list(broom::tidy(summary(engagement)))) %&gt;% \n  unnest()\n## # A tibble: 2 x 8\n##   src             minimum    q1 median  mean    q3 maximum    na\n##   &lt;chr&gt;             &lt;dbl&gt; &lt;dbl&gt;  &lt;dbl&gt; &lt;dbl&gt; &lt;dbl&gt;   &lt;dbl&gt; &lt;dbl&gt;\n## 1 R Weekly (Live)       0     0    0     0       0       0  1060\n## 2 R-bloggers            1    16   32.5  58.7    70    2023    NA\n<\/code><\/pre>\n<p>Well, it seems that it&#8217;s more difficult for Feedly to track engagement for the link-only R Weekly (Live) feed, so we&#8217;ll have to focus on R-bloggers for engagement views. Summary values are fine, but we can get a picture of the engagement distribution (we&#8217;ll do it monthly to get a bit more granularity, too):<\/p>\n<pre><code class=\"language-r\">filter(y2018, src == \"R-bloggers\") %&gt;% \n  mutate(month = lubridate::month(published, label = TRUE, abbr = TRUE)) %&gt;% \n  ggplot(aes(month, engagement)) +\n  geom_violin() +\n  ggbeeswarm::geom_quasirandom(\n    groupOnX = TRUE, size = 2, color = \"#2b2b2b\", fill = ft_cols$green,\n    shape = 21, stroke = 0.25\n  ) +\n  scale_y_comma(trans = \"log10\") +\n  labs(\n    x = NULL, y = \"Engagement Score\",\n    title = \"Monthly Post Engagement Distributions for R-bloggers Curated Posts\",\n    caption = \"NOTE: Y-axis log10 Scale\"\n  ) +\n  theme_ft_rc(grid=\"Y\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/engage2-1\/\" rel=\"attachment wp-att-11701\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11701\" data-permalink=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/engage2-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/engage2-1.png?fit=787%2C432&amp;ssl=1\" data-orig-size=\"787,432\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"engage2-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/engage2-1.png?fit=510%2C280&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/engage2-1.png?resize=510%2C280&#038;ssl=1\" alt=\"post engagement distribution\" width=\"510\" height=\"280\" class=\"aligncenter size-full wp-image-11701\" \/><\/a><\/p>\n<p>I wasn&#8217;t expecting each month&#8217;s distribution to be so similar. There are definitely outliers in terms of positive engagement so we should be able see what types of R-focused content piques the interest of the ~25,000 Feedly subscribers of R-bloggers.<\/p>\n<pre><code class=\"language-r\">filter(y2018, src == \"R-bloggers\") %&gt;% \n  group_by(author) %&gt;% \n  summarise(n_posts = n(), total_eng = sum(engagement), avg_eng = mean(engagement), med_eng = median(engagement)) %&gt;% \n  arrange(desc(n_posts)) %&gt;% \n  slice(1:20) %&gt;% \n  gt::gt() %&gt;% \n  gt::fmt_number(c(\"n_posts\", \"total_eng\", \"avg_eng\", \"med_eng\"), decimals = 0)\n<\/code><\/pre>\n<p><!--html_preserve--><\/p>\n<style>html {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;\n}<\/p>\n<p>#gxcouiuiwz .gt_table {\n  border-collapse: collapse;\n  margin-left: auto;\n  margin-right: auto;\n  color: #000000;\n  font-size: 16px;\n  background-color: #FFFFFF;\n  \/* table.background.color <em>\/\n  width: auto;\n  \/<\/em> table.width <em>\/\n  border-top-style: solid;\n  \/<\/em> table.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> table.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> table.border.top.color *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_heading {\n  background-color: #FFFFFF;\n  \/* heading.background.color *\/\n  border-bottom-color: #FFFFFF;\n}<\/p>\n<p>#gxcouiuiwz .gt_title {\n  color: #000000;\n  font-size: 125%;\n  \/* heading.title.font.size <em>\/\n  padding-top: 4px;\n  \/<\/em> heading.top.padding *\/\n  padding-bottom: 1px;\n  border-bottom-color: #FFFFFF;\n  border-bottom-width: 0;\n}<\/p>\n<p>#gxcouiuiwz .gt_subtitle {\n  color: #000000;\n  font-size: 85%;\n  \/* heading.subtitle.font.size <em>\/\n  padding-top: 1px;\n  padding-bottom: 4px;\n  \/<\/em> heading.bottom.padding *\/\n  border-top-color: #FFFFFF;\n  border-top-width: 0;\n}<\/p>\n<p>#gxcouiuiwz .gt_bottom_border {\n  border-bottom-style: solid;\n  \/* heading.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> heading.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> heading.border.bottom.color *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_column_spanner {\n  border-bottom-style: solid;\n  border-bottom-width: 2px;\n  border-bottom-color: #A8A8A8;\n  padding-top: 4px;\n  padding-bottom: 4px;\n}<\/p>\n<p>#gxcouiuiwz .gt_col_heading {\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* column_labels.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> column_labels.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> column_labels.font.weight *\/\n  padding: 10px;\n  margin: 10px;\n}<\/p>\n<p>#gxcouiuiwz .gt_sep_right {\n  border-right: 5px solid #FFFFFF;\n}<\/p>\n<p>#gxcouiuiwz .gt_group_heading {\n  padding: 8px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_empty_group_heading {\n  padding: 0.5px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_striped tr:nth-child(even) {\n  background-color: #f2f2f2;\n}<\/p>\n<p>#gxcouiuiwz .gt_row {\n  padding: 10px;\n  \/* row.padding *\/\n  margin: 10px;\n}<\/p>\n<p>#gxcouiuiwz .gt_stub {\n  border-right-style: solid;\n  border-right-width: 2px;\n  border-right-color: #A8A8A8;\n  text-indent: 5px;\n}<\/p>\n<p>#gxcouiuiwz .gt_stub.gt_row {\n  background-color: #FFFFFF;\n}<\/p>\n<p>#gxcouiuiwz .gt_summary_row {\n  background-color: #FFFFFF;\n  \/* summary_row.background.color <em>\/\n  padding: 6px;\n  \/<\/em> summary_row.padding <em>\/\n  text-transform: inherit;\n  \/<\/em> summary_row.text_transform *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_first_summary_row {\n  border-top-style: solid;\n  border-top-width: 2px;\n  border-top-color: #A8A8A8;\n}<\/p>\n<p>#gxcouiuiwz .gt_table_body {\n  border-top-style: solid;\n  \/* field.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> field.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> field.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> field.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> field.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> field.border.bottom.color *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_footnote {\n  font-size: 90%;\n  \/* footnote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> footnote.padding *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_sourcenote {\n  font-size: 90%;\n  \/* sourcenote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> sourcenote.padding *\/\n}<\/p>\n<p>#gxcouiuiwz .gt_center {\n  text-align: center;\n}<\/p>\n<p>#gxcouiuiwz .gt_left {\n  text-align: left;\n}<\/p>\n<p>#gxcouiuiwz .gt_right {\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n}<\/p>\n<p>#gxcouiuiwz .gt_font_normal {\n  font-weight: normal;\n}<\/p>\n<p>#gxcouiuiwz .gt_font_bold {\n  font-weight: bold;\n}<\/p>\n<p>#gxcouiuiwz .gt_font_italic {\n  font-style: italic;\n}<\/p>\n<p>#gxcouiuiwz .gt_super {\n  font-size: 65%;\n}<\/p>\n<p>#gxcouiuiwz .gt_footnote_glyph {\n  font-style: italic;\n  font-size: 65%;\n}\n<\/style>\n<div id=\"gxcouiuiwz\"><!--gt table start--><\/p>\n<table class='gt_table'>\n<tr>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>author<\/th>\n<th class='gt_col_heading gt_right' rowspan='1' colspan='1'>n_posts<\/th>\n<th class='gt_col_heading gt_right' rowspan='1' colspan='1'>total_eng<\/th>\n<th class='gt_col_heading gt_right' rowspan='1' colspan='1'>avg_eng<\/th>\n<th class='gt_col_heading gt_right' rowspan='1' colspan='1'>med_eng<\/th>\n<\/tr>\n<tbody class='gt_table_body gt_striped'>\n<tr>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<td class='gt_row gt_right'>116<\/td>\n<td class='gt_row gt_right'>9,791<\/td>\n<td class='gt_row gt_right'>84<\/td>\n<td class='gt_row gt_right'>47<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>John Mount                            <\/td>\n<td class='gt_row gt_right'>94<\/td>\n<td class='gt_row gt_right'>4,614<\/td>\n<td class='gt_row gt_right'>49<\/td>\n<td class='gt_row gt_right'>33<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>rOpenSci &#8211; open tools for open science<\/td>\n<td class='gt_row gt_right'>89<\/td>\n<td class='gt_row gt_right'>2,967<\/td>\n<td class='gt_row gt_right'>33<\/td>\n<td class='gt_row gt_right'>19<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Thinking inside the box               <\/td>\n<td class='gt_row gt_right'>85<\/td>\n<td class='gt_row gt_right'>1,510<\/td>\n<td class='gt_row gt_right'>18<\/td>\n<td class='gt_row gt_right'>14<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>R Views                               <\/td>\n<td class='gt_row gt_right'>60<\/td>\n<td class='gt_row gt_right'>4,142<\/td>\n<td class='gt_row gt_right'>69<\/td>\n<td class='gt_row gt_right'>47<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>hrbrmstr                              <\/td>\n<td class='gt_row gt_right'>55<\/td>\n<td class='gt_row gt_right'>1,179<\/td>\n<td class='gt_row gt_right'>21<\/td>\n<td class='gt_row gt_right'>16<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Dr. Shirin Glander                    <\/td>\n<td class='gt_row gt_right'>54<\/td>\n<td class='gt_row gt_right'>2,747<\/td>\n<td class='gt_row gt_right'>51<\/td>\n<td class='gt_row gt_right'>25<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>xi&#8217;an                                 <\/td>\n<td class='gt_row gt_right'>49<\/td>\n<td class='gt_row gt_right'>990<\/td>\n<td class='gt_row gt_right'>20<\/td>\n<td class='gt_row gt_right'>12<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Mango Solutions                       <\/td>\n<td class='gt_row gt_right'>42<\/td>\n<td class='gt_row gt_right'>1,221<\/td>\n<td class='gt_row gt_right'>29<\/td>\n<td class='gt_row gt_right'>17<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Econometrics and Free Software        <\/td>\n<td class='gt_row gt_right'>33<\/td>\n<td class='gt_row gt_right'>2,858<\/td>\n<td class='gt_row gt_right'>87<\/td>\n<td class='gt_row gt_right'>60<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>business-science.io &#8211; Articles        <\/td>\n<td class='gt_row gt_right'>31<\/td>\n<td class='gt_row gt_right'>4,484<\/td>\n<td class='gt_row gt_right'>145<\/td>\n<td class='gt_row gt_right'>70<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>NA                                    <\/td>\n<td class='gt_row gt_right'>31<\/td>\n<td class='gt_row gt_right'>1,724<\/td>\n<td class='gt_row gt_right'>56<\/td>\n<td class='gt_row gt_right'>40<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>statcompute                           <\/td>\n<td class='gt_row gt_right'>29<\/td>\n<td class='gt_row gt_right'>1,329<\/td>\n<td class='gt_row gt_right'>46<\/td>\n<td class='gt_row gt_right'>33<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Ryan Sheehy                           <\/td>\n<td class='gt_row gt_right'>25<\/td>\n<td class='gt_row gt_right'>1,271<\/td>\n<td class='gt_row gt_right'>51<\/td>\n<td class='gt_row gt_right'>45<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Keith Goldfeld                        <\/td>\n<td class='gt_row gt_right'>24<\/td>\n<td class='gt_row gt_right'>1,305<\/td>\n<td class='gt_row gt_right'>54<\/td>\n<td class='gt_row gt_right'>43<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>free range statistics &#8211; R             <\/td>\n<td class='gt_row gt_right'>23<\/td>\n<td class='gt_row gt_right'>440<\/td>\n<td class='gt_row gt_right'>19<\/td>\n<td class='gt_row gt_right'>12<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Jakob Gepp                            <\/td>\n<td class='gt_row gt_right'>21<\/td>\n<td class='gt_row gt_right'>348<\/td>\n<td class='gt_row gt_right'>17<\/td>\n<td class='gt_row gt_right'>13<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Tal Galili                            <\/td>\n<td class='gt_row gt_right'>21<\/td>\n<td class='gt_row gt_right'>1,587<\/td>\n<td class='gt_row gt_right'>76<\/td>\n<td class='gt_row gt_right'>22<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>Jozef&#8217;s Rblog                         <\/td>\n<td class='gt_row gt_right'>18<\/td>\n<td class='gt_row gt_right'>1,617<\/td>\n<td class='gt_row gt_right'>90<\/td>\n<td class='gt_row gt_right'>65<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_left'>arthur charpentier                    <\/td>\n<td class='gt_row gt_right'>16<\/td>\n<td class='gt_row gt_right'>1,320<\/td>\n<td class='gt_row gt_right'>82<\/td>\n<td class='gt_row gt_right'>68<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!--gt table end-->\n<\/div>\n<p><!--\/html_preserve--><\/p>\n<p>It is absolutely no surprise David comes in at number one in both post count and almost every engagement summary statistic since he&#8217;s a veritable blogging <em>machine<\/em> and creates + curates some super interesting content (whereas your&#8217;s truly doesn&#8217;t even make the median engagement cut ?).<\/p>\n<p>What were the most engaging posts?<\/p>\n<pre><code class=\"language-r\">filter(y2018, src == \"R-bloggers\") %&gt;% \n  arrange(desc(engagement)) %&gt;% \n  mutate(published = as.Date(published)) %&gt;% \n  select(engagement, title, published, author) %&gt;% \n  slice(1:50) %&gt;% \n  gt::gt() %&gt;% \n  gt::fmt_number(c(\"engagement\"), decimals = 0)\n<\/code><\/pre>\n<p><!--html_preserve--><\/p>\n<style>html {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;\n}<\/p>\n<p>#igaqkohfhd .gt_table {\n  border-collapse: collapse;\n  margin-left: auto;\n  margin-right: auto;\n  color: #000000;\n  font-size: 16px;\n  background-color: #FFFFFF;\n  \/* table.background.color <em>\/\n  width: auto;\n  \/<\/em> table.width <em>\/\n  border-top-style: solid;\n  \/<\/em> table.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> table.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> table.border.top.color *\/\n}<\/p>\n<p>#igaqkohfhd .gt_heading {\n  background-color: #FFFFFF;\n  \/* heading.background.color *\/\n  border-bottom-color: #FFFFFF;\n}<\/p>\n<p>#igaqkohfhd .gt_title {\n  color: #000000;\n  font-size: 125%;\n  \/* heading.title.font.size <em>\/\n  padding-top: 4px;\n  \/<\/em> heading.top.padding *\/\n  padding-bottom: 1px;\n  border-bottom-color: #FFFFFF;\n  border-bottom-width: 0;\n}<\/p>\n<p>#igaqkohfhd .gt_subtitle {\n  color: #000000;\n  font-size: 85%;\n  \/* heading.subtitle.font.size <em>\/\n  padding-top: 1px;\n  padding-bottom: 4px;\n  \/<\/em> heading.bottom.padding *\/\n  border-top-color: #FFFFFF;\n  border-top-width: 0;\n}<\/p>\n<p>#igaqkohfhd .gt_bottom_border {\n  border-bottom-style: solid;\n  \/* heading.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> heading.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> heading.border.bottom.color *\/\n}<\/p>\n<p>#igaqkohfhd .gt_column_spanner {\n  border-bottom-style: solid;\n  border-bottom-width: 2px;\n  border-bottom-color: #A8A8A8;\n  padding-top: 4px;\n  padding-bottom: 4px;\n}<\/p>\n<p>#igaqkohfhd .gt_col_heading {\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* column_labels.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> column_labels.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> column_labels.font.weight *\/\n  padding: 10px;\n  margin: 10px;\n}<\/p>\n<p>#igaqkohfhd .gt_sep_right {\n  border-right: 5px solid #FFFFFF;\n}<\/p>\n<p>#igaqkohfhd .gt_group_heading {\n  padding: 8px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#igaqkohfhd .gt_empty_group_heading {\n  padding: 0.5px;\n  color: #000000;\n  background-color: #FFFFFF;\n  \/* stub_group.background.color <em>\/\n  font-size: 16px;\n  \/<\/em> stub_group.font.size <em>\/\n  font-weight: initial;\n  \/<\/em> stub_group.font.weight <em>\/\n  border-top-style: solid;\n  \/<\/em> stub_group.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> stub_group.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> stub_group.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> stub_group.border.bottom  .style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> stub_group.border.bottom  .width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> stub_group.border.bottom  .color *\/\n}<\/p>\n<p>#igaqkohfhd .gt_striped tr:nth-child(even) {\n  background-color: #f2f2f2;\n}<\/p>\n<p>#igaqkohfhd .gt_row {\n  padding: 10px;\n  \/* row.padding *\/\n  margin: 10px;\n}<\/p>\n<p>#igaqkohfhd .gt_stub {\n  border-right-style: solid;\n  border-right-width: 2px;\n  border-right-color: #A8A8A8;\n  text-indent: 5px;\n}<\/p>\n<p>#igaqkohfhd .gt_stub.gt_row {\n  background-color: #FFFFFF;\n}<\/p>\n<p>#igaqkohfhd .gt_summary_row {\n  background-color: #FFFFFF;\n  \/* summary_row.background.color <em>\/\n  padding: 6px;\n  \/<\/em> summary_row.padding <em>\/\n  text-transform: inherit;\n  \/<\/em> summary_row.text_transform *\/\n}<\/p>\n<p>#igaqkohfhd .gt_first_summary_row {\n  border-top-style: solid;\n  border-top-width: 2px;\n  border-top-color: #A8A8A8;\n}<\/p>\n<p>#igaqkohfhd .gt_table_body {\n  border-top-style: solid;\n  \/* field.border.top.style <em>\/\n  border-top-width: 2px;\n  \/<\/em> field.border.top.width <em>\/\n  border-top-color: #A8A8A8;\n  \/<\/em> field.border.top.color <em>\/\n  border-bottom-style: solid;\n  \/<\/em> field.border.bottom.style <em>\/\n  border-bottom-width: 2px;\n  \/<\/em> field.border.bottom.width <em>\/\n  border-bottom-color: #A8A8A8;\n  \/<\/em> field.border.bottom.color *\/\n}<\/p>\n<p>#igaqkohfhd .gt_footnote {\n  font-size: 90%;\n  \/* footnote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> footnote.padding *\/\n}<\/p>\n<p>#igaqkohfhd .gt_sourcenote {\n  font-size: 90%;\n  \/* sourcenote.font.size <em>\/\n  padding: 4px;\n  \/<\/em> sourcenote.padding *\/\n}<\/p>\n<p>#igaqkohfhd .gt_center {\n  text-align: center;\n}<\/p>\n<p>#igaqkohfhd .gt_left {\n  text-align: left;\n}<\/p>\n<p>#igaqkohfhd .gt_right {\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n}<\/p>\n<p>#igaqkohfhd .gt_font_normal {\n  font-weight: normal;\n}<\/p>\n<p>#igaqkohfhd .gt_font_bold {\n  font-weight: bold;\n}<\/p>\n<p>#igaqkohfhd .gt_font_italic {\n  font-style: italic;\n}<\/p>\n<p>#igaqkohfhd .gt_super {\n  font-size: 65%;\n}<\/p>\n<p>#igaqkohfhd .gt_footnote_glyph {\n  font-style: italic;\n  font-size: 65%;\n}\n<\/style>\n<div id=\"igaqkohfhd\"><!--gt table start--><\/p>\n<table class='gt_table'>\n<tr>\n<th class='gt_col_heading gt_right' rowspan='1' colspan='1'>engagement<\/th>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>title<\/th>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>published<\/th>\n<th class='gt_col_heading gt_left' rowspan='1' colspan='1'>author<\/th>\n<\/tr>\n<tbody class='gt_table_body gt_striped'>\n<tr>\n<td class='gt_row gt_right'>2,023<\/td>\n<td class='gt_row gt_left'>Happy Birthday R                                                                          <\/td>\n<td class='gt_row gt_left'>2018-08-27<\/td>\n<td class='gt_row gt_left'>eoda GmbH                             <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>1,132<\/td>\n<td class='gt_row gt_left'>15 Types of Regression you should know                                                    <\/td>\n<td class='gt_row gt_left'>2018-03-25<\/td>\n<td class='gt_row gt_left'>ListenData                            <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>697<\/td>\n<td class='gt_row gt_left'>R and Python: How to Integrate the Best of Both into Your Data Science Workflow           <\/td>\n<td class='gt_row gt_left'>2018-10-08<\/td>\n<td class='gt_row gt_left'>business-science.io &#8211; Articles        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>690<\/td>\n<td class='gt_row gt_left'>Ultimate Python Cheatsheet: Data Science Workflow with Python                             <\/td>\n<td class='gt_row gt_left'>2018-11-18<\/td>\n<td class='gt_row gt_left'>business-science.io &#8211; Articles        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>639<\/td>\n<td class='gt_row gt_left'>Data Analysis with Python Course: How to read, wrangle, and analyze data                  <\/td>\n<td class='gt_row gt_left'>2018-10-31<\/td>\n<td class='gt_row gt_left'>Andrew Treadway                       <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>617<\/td>\n<td class='gt_row gt_left'>Machine Learning Results in R: one plot to rule them all!                                 <\/td>\n<td class='gt_row gt_left'>2018-07-18<\/td>\n<td class='gt_row gt_left'>Bernardo Lares                        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>614<\/td>\n<td class='gt_row gt_left'>R tip: Use Radix Sort                                                                     <\/td>\n<td class='gt_row gt_left'>2018-08-21<\/td>\n<td class='gt_row gt_left'>John Mount                            <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>610<\/td>\n<td class='gt_row gt_left'>Data science courses in R (\/python\/etc.) for $10 at Udemy (Sitewide Sale until Aug 26th)  <\/td>\n<td class='gt_row gt_left'>2018-08-24<\/td>\n<td class='gt_row gt_left'>Tal Galili                            <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>575<\/td>\n<td class='gt_row gt_left'>Why R for data science \u2013 and not Python?                                                  <\/td>\n<td class='gt_row gt_left'>2018-12-02<\/td>\n<td class='gt_row gt_left'>Learning Machines                     <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>560<\/td>\n<td class='gt_row gt_left'>Case Study: How To Build A High Performance Data Science Team                             <\/td>\n<td class='gt_row gt_left'>2018-09-18<\/td>\n<td class='gt_row gt_left'>business-science.io &#8211; Articles        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>516<\/td>\n<td class='gt_row gt_left'>R 3.5.0 is released! (major release with many new features)                               <\/td>\n<td class='gt_row gt_left'>2018-04-24<\/td>\n<td class='gt_row gt_left'>Tal Galili                            <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>482<\/td>\n<td class='gt_row gt_left'>R or Python? Why not both? Using Anaconda Python within R with {reticulate}               <\/td>\n<td class='gt_row gt_left'>2018-12-30<\/td>\n<td class='gt_row gt_left'>Econometrics and Free Software        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>479<\/td>\n<td class='gt_row gt_left'>Sankey Diagram for the 2018 FIFA World Cup Forecast                                       <\/td>\n<td class='gt_row gt_left'>2018-06-10<\/td>\n<td class='gt_row gt_left'>Achim Zeileis                         <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>477<\/td>\n<td class='gt_row gt_left'>5 amazing free tools that can help with publishing R results and blogging                 <\/td>\n<td class='gt_row gt_left'>2018-12-22<\/td>\n<td class='gt_row gt_left'>Jozef&#8217;s Rblog                         <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>462<\/td>\n<td class='gt_row gt_left'>What\u2019s the difference between data science, machine learning, and artificial intelligence?<\/td>\n<td class='gt_row gt_left'>2018-01-09<\/td>\n<td class='gt_row gt_left'>David Robinson                        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>456<\/td>\n<td class='gt_row gt_left'>XKCD &#8220;Curve Fitting&#8221;, in R                                                                <\/td>\n<td class='gt_row gt_left'>2018-09-28<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>450<\/td>\n<td class='gt_row gt_left'>The prequel to the drake R package                                                        <\/td>\n<td class='gt_row gt_left'>2018-02-06<\/td>\n<td class='gt_row gt_left'>rOpenSci &#8211; open tools for open science<\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>449<\/td>\n<td class='gt_row gt_left'>Who wrote that anonymous NYT op-ed? Text similarity analyses with R                       <\/td>\n<td class='gt_row gt_left'>2018-09-07<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>437<\/td>\n<td class='gt_row gt_left'>Elegant regression results tables and plots in R: the finalfit package                    <\/td>\n<td class='gt_row gt_left'>2018-05-16<\/td>\n<td class='gt_row gt_left'>Ewen Harrison                         <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>428<\/td>\n<td class='gt_row gt_left'>How to implement neural networks in R                                                     <\/td>\n<td class='gt_row gt_left'>2018-01-12<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>426<\/td>\n<td class='gt_row gt_left'>Data transformation in <a rel=\"tag\" class=\"hashtag u-tag u-category\" href=\"https:\/\/rud.is\/b\/category\/tidyverse\/\">#tidyverse<\/a> style: package sjmisc updated <a rel=\"tag\" class=\"hashtag u-tag u-category\" href=\"https:\/\/rud.is\/b\/tag\/rstats\/\">#rstats<\/a>                   <\/td>\n<td class='gt_row gt_left'>2018-02-06<\/td>\n<td class='gt_row gt_left'>Daniel                                <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>413<\/td>\n<td class='gt_row gt_left'>Neural Networks Are Essentially Polynomial Regression                                     <\/td>\n<td class='gt_row gt_left'>2018-06-20<\/td>\n<td class='gt_row gt_left'>matloff                               <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>403<\/td>\n<td class='gt_row gt_left'>Custom R charts coming to Excel                                                           <\/td>\n<td class='gt_row gt_left'>2018-05-11<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>379<\/td>\n<td class='gt_row gt_left'>A perfect RStudio layout                                                                  <\/td>\n<td class='gt_row gt_left'>2018-05-22<\/td>\n<td class='gt_row gt_left'>Ilya Kashnitsky                       <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>370<\/td>\n<td class='gt_row gt_left'>Drawing beautiful maps programmatically with R, sf and ggplot2 \u2014 Part 1: Basics           <\/td>\n<td class='gt_row gt_left'>2018-10-25<\/td>\n<td class='gt_row gt_left'>Mel Moreno and Mathieu Basille        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>368<\/td>\n<td class='gt_row gt_left'>The Financial Times and BBC use R for publication graphics                                <\/td>\n<td class='gt_row gt_left'>2018-06-27<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>367<\/td>\n<td class='gt_row gt_left'>Dealing with The Problem of Multicollinearity in R                                        <\/td>\n<td class='gt_row gt_left'>2018-08-16<\/td>\n<td class='gt_row gt_left'>Perceptive Analytics                  <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>367<\/td>\n<td class='gt_row gt_left'>Excel is obsolete. Here are the Top 2 alternatives from R and Python.                     <\/td>\n<td class='gt_row gt_left'>2018-03-13<\/td>\n<td class='gt_row gt_left'>Appsilon Data Science Blog            <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>365<\/td>\n<td class='gt_row gt_left'>New R Cheatsheet: Data Science Workflow with R                                            <\/td>\n<td class='gt_row gt_left'>2018-11-04<\/td>\n<td class='gt_row gt_left'>business-science.io &#8211; Articles        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>361<\/td>\n<td class='gt_row gt_left'>Tips for analyzing Excel data in R                                                        <\/td>\n<td class='gt_row gt_left'>2018-08-30<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>360<\/td>\n<td class='gt_row gt_left'>Importing 30GB of data in R with sparklyr                                                 <\/td>\n<td class='gt_row gt_left'>2018-02-16<\/td>\n<td class='gt_row gt_left'>Econometrics and Free Software        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>358<\/td>\n<td class='gt_row gt_left'>Scraping a website with 5 lines of R code                                                 <\/td>\n<td class='gt_row gt_left'>2018-01-24<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>356<\/td>\n<td class='gt_row gt_left'>Clustering the Bible                                                                      <\/td>\n<td class='gt_row gt_left'>2018-12-27<\/td>\n<td class='gt_row gt_left'>Learning Machines                     <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>356<\/td>\n<td class='gt_row gt_left'>Finally, You Can Plot H2O Decision Trees in R                                             <\/td>\n<td class='gt_row gt_left'>2018-12-26<\/td>\n<td class='gt_row gt_left'>Gregory Kanevsky                      <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>356<\/td>\n<td class='gt_row gt_left'>Geocomputation with R \u2013 the afterword                                                     <\/td>\n<td class='gt_row gt_left'>2018-12-12<\/td>\n<td class='gt_row gt_left'>Rstats on Jakub Nowosad&#8217;s website     <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>347<\/td>\n<td class='gt_row gt_left'>Time Series Deep Learning: Forecasting Sunspots With Keras Stateful LSTM In R             <\/td>\n<td class='gt_row gt_left'>2018-04-18<\/td>\n<td class='gt_row gt_left'>business-science.io &#8211; Articles        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>343<\/td>\n<td class='gt_row gt_left'>Run Python from R                                                                         <\/td>\n<td class='gt_row gt_left'>2018-03-27<\/td>\n<td class='gt_row gt_left'>Deepanshu Bhalla                      <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>336<\/td>\n<td class='gt_row gt_left'>Machine Learning Results in R: one plot to rule them all! (Part 2 \u2013 Regression Models)    <\/td>\n<td class='gt_row gt_left'>2018-07-24<\/td>\n<td class='gt_row gt_left'>Bernardo Lares                        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>332<\/td>\n<td class='gt_row gt_left'>R Generation: 25 Years of R                                                               <\/td>\n<td class='gt_row gt_left'>2018-08-01<\/td>\n<td class='gt_row gt_left'>David Smith                           <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>329<\/td>\n<td class='gt_row gt_left'>How to extract data from a PDF file with R                                                <\/td>\n<td class='gt_row gt_left'>2018-01-05<\/td>\n<td class='gt_row gt_left'>Packt Publishing                      <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>325<\/td>\n<td class='gt_row gt_left'>R or Python? Python or R? The ongoing debate.                                             <\/td>\n<td class='gt_row gt_left'>2018-01-28<\/td>\n<td class='gt_row gt_left'>tomaztsql                             <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>322<\/td>\n<td class='gt_row gt_left'>How to perform Logistic Regression, LDA,  &amp; QDA in R                                      <\/td>\n<td class='gt_row gt_left'>2018-01-05<\/td>\n<td class='gt_row gt_left'>Prashant Shekhar                      <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>321<\/td>\n<td class='gt_row gt_left'>Who wrote the anti-Trump New York Times op-ed? Using tidytext to find document similarity <\/td>\n<td class='gt_row gt_left'>2018-09-06<\/td>\n<td class='gt_row gt_left'>David Robinson                        <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>311<\/td>\n<td class='gt_row gt_left'>Intuition for principal component analysis (PCA)                                          <\/td>\n<td class='gt_row gt_left'>2018-12-06<\/td>\n<td class='gt_row gt_left'>Learning Machines                     <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>310<\/td>\n<td class='gt_row gt_left'>Packages for Getting Started with Time Series Analysis in R                               <\/td>\n<td class='gt_row gt_left'>2018-02-18<\/td>\n<td class='gt_row gt_left'>atmathew                              <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>309<\/td>\n<td class='gt_row gt_left'>Announcing the R Markdown Book                                                            <\/td>\n<td class='gt_row gt_left'>2018-07-13<\/td>\n<td class='gt_row gt_left'>Yihui Xie                             <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>307<\/td>\n<td class='gt_row gt_left'>Automated Email Reports with R                                                            <\/td>\n<td class='gt_row gt_left'>2018-11-01<\/td>\n<td class='gt_row gt_left'>JOURNEYOFANALYTICS                    <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>304<\/td>\n<td class='gt_row gt_left'>future.apply \u2013 Parallelize Any Base R Apply Function                                      <\/td>\n<td class='gt_row gt_left'>2018-06-23<\/td>\n<td class='gt_row gt_left'>JottR on R                            <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>298<\/td>\n<td class='gt_row gt_left'>How to build your own Neural Network from scratch in R                                    <\/td>\n<td class='gt_row gt_left'>2018-10-09<\/td>\n<td class='gt_row gt_left'>Posts on Tychobra                     <\/td>\n<\/tr>\n<tr>\n<td class='gt_row gt_right'>293<\/td>\n<td class='gt_row gt_left'>RStudio 1.2 Preview: SQL Integration                                                      <\/td>\n<td class='gt_row gt_left'>2018-10-02<\/td>\n<td class='gt_row gt_left'>Jonathan McPherson                    <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!--gt table end-->\n<\/div>\n<p><!--\/html_preserve--><\/p>\n<p>Weekly &amp; monthly curated post descriptive statstic patterns haven&#8217;t changed much since the April post:<\/p>\n<pre><code class=\"language-r\">filter(y2018, src == \"R-bloggers\") %&gt;% \n  mutate(wkday = lubridate::wday(published, label = TRUE, abbr = TRUE)) %&gt;%\n  count(wkday) %&gt;% \n  ggplot(aes(wkday, n)) +\n  geom_col(width = 0.5, fill = ft_cols$slate, color = NA) +\n  scale_y_comma() +\n  labs(\n    x = NULL, y = \"# Curated Posts\",\n    title = \"Day-of-week Curated Post Count for the R-bloggers Feed\"\n  ) +\n  theme_ft_rc(grid=\"Y\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/dow-stuff-1\/\" rel=\"attachment wp-att-11700\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11700\" data-permalink=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/dow-stuff-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/dow-stuff-1.png?fit=672%2C432&amp;ssl=1\" data-orig-size=\"672,432\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dow-stuff-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/dow-stuff-1.png?fit=510%2C328&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/dow-stuff-1.png?resize=510%2C328&#038;ssl=1\" alt=\"day of week view\" width=\"510\" height=\"328\" class=\"aligncenter size-full wp-image-11700\" \/><\/a><\/p>\n<pre><code class=\"language-r\">filter(y2018, src == \"R-bloggers\") %&gt;% \n  mutate(month = lubridate::month(published, label = TRUE, abbr = TRUE)) %&gt;%\n  count(month) %&gt;% \n  ggplot(aes(month, n)) +\n  geom_col(width = 0.5, fill = ft_cols$slate, color = NA) +\n  scale_y_comma() +\n  labs(\n    x = NULL, y = \"# Curated Posts\",\n    title = \"Monthly Curated Post Count for the R-bloggers Feed\"\n  ) +\n  theme_ft_rc(grid=\"Y\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/month-stuff-1\/\" rel=\"attachment wp-att-11702\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11702\" data-permalink=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/month-stuff-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/month-stuff-1.png?fit=672%2C480&amp;ssl=1\" data-orig-size=\"672,480\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"month-stuff-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/month-stuff-1.png?fit=510%2C364&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/month-stuff-1.png?resize=510%2C364&#038;ssl=1\" alt=\"month view\" width=\"510\" height=\"364\" class=\"aligncenter size-full wp-image-11702\" \/><\/a><\/p>\n<p>Surprisingly, monthly post count consistency (or even posting something each month) is not a common trait amongst the top 20 (by total engagement) authors:<\/p>\n<pre><code class=\"language-r\">w20 &lt;- scales::wrap_format(20)\n\nfilter(y2018, src == \"R-bloggers\") %&gt;% \n  filter(!is.na(author)) %&gt;% # some posts don't have author attribution\n  mutate(author_t = map_chr(w20(author), paste0, collapse=\"\\n\")) %&gt;% # we need to wrap for facet titles (below)\n  count(author, author_t, wt=engagement, sort=TRUE) %&gt;% # get total author engagement\n  slice(1:20) %&gt;% # top 20\n  { .auth_ordr &lt;&lt;- . ; . } %&gt;% # we use the order later\n  left_join(filter(y2018, src == \"R-bloggers\"), \"author\") %&gt;% \n  mutate(month = lubridate::month(published, label = TRUE, abbr = TRUE)) %&gt;%\n  count(month, author_t, sort = TRUE) %&gt;% \n  mutate(author_t = factor(author_t, levels = .auth_ordr$author_t)) %&gt;% \n  ggplot(aes(month, nn, author_t)) +\n  geom_col(width = 0.5) +\n  scale_x_discrete(labels=substring(month.abb, 1, 1)) +\n  scale_y_comma() +\n  facet_wrap(~author_t) +\n  labs(\n    x = NULL, y = \"Curated Post Count\",\n    title = \"Monthly Curated Post Counts-per-Author (Top 20 by Engagement)\",\n    subtitle = \"Arranged by Total Author Engagement\"\n  ) +\n  theme_ft_rc(grid=\"yY\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/author-month-1\/\" rel=\"attachment wp-att-11698\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11698\" data-permalink=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/author-month-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&amp;ssl=1\" data-orig-size=\"960,864\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"author-month-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=510%2C459&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?resize=510%2C459&#038;ssl=1\" alt=\"\" width=\"510\" height=\"459\" class=\"aligncenter size-full wp-image-11698\" \/><\/a><\/p>\n<p>Overall, most authors favor shorter titles for their posts:<\/p>\n<pre><code class=\"language-r\">filter(y2018, src == \"R-bloggers\") %&gt;% \n  mutate(\n    `Character Count Distribution` = nchar(title), \n    `Word Count Distribution` = stringi::stri_count_boundaries(title, type = \"word\")\n  ) %&gt;% \n  select(id, `Character Count Distribution`, `Word Count Distribution`) %&gt;% \n  gather(measure, value, -id) %&gt;% \n  ggplot(aes(value)) +\n  ggalt::geom_bkde(alpha=1\/3, color = ft_cols$slate, fill = ft_cols$slate) +\n  scale_y_continuous(expand=c(0,0)) +\n  facet_wrap(~measure, scales = \"free\") +\n  labs(\n    x = NULL, y = \"Density\",\n    title = \"Title Character\/Word Count Distributions\",\n    subtitle = \"~38 characters\/11 words seems to be the sweet spot for most authors\",\n    caption = \"Note Free X\/Y Scales\"\n  ) +\n  theme_ft_rc(grid=\"XY\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/titles-1\/\" rel=\"attachment wp-att-11703\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"11703\" data-permalink=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/titles-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/titles-1.png?fit=768%2C432&amp;ssl=1\" data-orig-size=\"768,432\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"titles-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/titles-1.png?fit=510%2C287&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/titles-1.png?resize=510%2C287&#038;ssl=1\" alt=\"\" width=\"510\" height=\"287\" class=\"aligncenter size-full wp-image-11703\" \/><\/a><\/p>\n<p>This post is already kinda tome-length so I&#8217;ll leave it to y&#8217;all to <a href=\"https:\/\/rud.is\/dl\/2018-feedly-r-blogs.rds\">grab the data<\/a> and dig in a bit more.<\/p>\n<h3>A Word About Using The <code>content_content<\/code> Field For R-bloggers Posts<\/h3>\n<p>Since R-bloggers requires a full feed from contributors, they, in-turn, post a &#8220;kinda&#8221; full-feed back out. I say &#8220;kinda&#8221; as they still haven&#8217;t fixed a reported bug in their processing engine which causes issues in (at least) Feedly&#8217;s RSS processing engine. If you use Feedly, take a look at the R-bloggers RSS feed entry for the recent <em>&#8220;R or Python? Why not both? Using Anaconda Python within R with {reticulate}&#8221;<\/em> post. It cuts off near <em>&#8220;Let\u2019s check its type:&#8221;<\/em>. This is due to the way the <code>&lt;<\/code> character is processed by the R-bloggers ingestion engine which turns the <code>## &lt;class 'pandas.core.frame.DataFrame'&gt;<\/code> in <a href=\"https:\/\/www.brodrigues.co\/blog\/2018-12-30-reticulate\/\">the original post<\/a> and <a href=\"https:\/\/www.r-bloggers.com\/r-or-python-why-not-both-using-anaconda-python-within-r-with-reticulate\/\">doesn&#8217;t even display right on the R-bloggers page<\/a> as it mangles the input and turns the descriptive output into an actuall <code>&lt;class&gt;<\/code> tag: <code>&lt;class &amp;#39;pandas.core.frame.dataframe&amp;#39;=\"\"&gt;&lt;\/class&gt;<\/code>. It&#8217;s really an issue on both sides, but R-bloggers is doing the mangling and should seriously consider addressing it in 2019.<\/p>\n<p>Since it is still not fixed, it forces you to go to R-bloggers (clicks FTW? and may partly explain why that example post has a 400+ engagement score) unless you scroll back up to the top of the Feedly view and go to the author&#8217;s blog page. Given that tibble output invariably has a <code>&lt;<\/code> right up top, your best bet for getting more direct views of your own content is to get a code-block with printed <code>## &lt;<\/code> output in it as close to the beginning as possible (perhaps start each post with a <code>print(tbl_df(mtcars)))<\/code>? ?).<\/p>\n<p>Putting post-view-hacking levity aside, this content mangling means you can&#8217;t trust the <code>content_content<\/code> column in the stream data frame to have all the content; that is, if you were planning on taking the provided data and doing some topic clustering or content-based feature extraction for other stats\/ML ops you&#8217;re out of luck and need to crawl the original site URLs on your own to get the main content for such analyses.<\/p>\n<h3>A Bit More About seymour<\/h3>\n<p>The <code>seymour<\/code> package has the following API functions:<\/p>\n<ul>\n<li><code>feedly_access_token<\/code>: Retrieve the Feedly Developer Token<\/li>\n<li><code>feedly_collections<\/code>: Retrieve Feedly Connections<\/li>\n<li><code>feedly_feed_meta<\/code>: Retrieve Metadata for a Feed<\/li>\n<li><code>feedly_opml<\/code>: Retrieve Your Feedly OPML File<\/li>\n<li><code>feedly_profile<\/code>: Retrieve Your Feedly Profile<\/li>\n<li><code>feedly_search_contents<\/code>: Search content of a stream<\/li>\n<li><code>feedly_search_title<\/code>: Find feeds based on title, url or \u2018&#35;topic\u2019<\/li>\n<li><code>feedly_stream<\/code>: Retrieve contents of a Feedly \u201cstream\u201d<\/li>\n<li><code>feedly_tags<\/code>: Retrieve List of Tags<\/li>\n<\/ul>\n<p>along with following helper function (which we&#8217;ll introduce in a minute):<\/p>\n<ul>\n<li><code>render_stream<\/code>: Render a Feedly Stream Data Frame to RMarkdown<\/li>\n<\/ul>\n<p>and, the following helper reference (as Feedly has some &#8220;universal&#8221; streams):<\/p>\n<ul>\n<li><code>global_resource_ids<\/code>: Global Resource Ids Helper Reference<\/li>\n<\/ul>\n<p>The <code>render_stream()<\/code> function is semi-useful on its own but was designed as more of a <em>&#8220;you may want to replicate this on your own&#8221;<\/em> (i.e. <a href=\"https:\/\/gitlab.com\/hrbrmstr\/seymour\/blob\/master\/R\/render-stream.R\">have a look at the source code and riff off of it<\/a>). &#8220;Streams&#8221; are individual feeds, collections or even &#8220;boards&#8221; you make and with this new API package and the power of R Markdown, you can make your own &#8220;newsletter&#8221; like this:<\/p>\n<pre><code class=\"language-r\">fp &lt;- feedly_profile() # get profile to get my id\n\n# use the id to get my \"security\" category feed in my feedly\nfs &lt;- feedly_stream(sprintf(\"user\/%s\/category\/security\", fp$id))\n\n# get the top 10 items with engagement &gt;= third quartile of all posts\n# and don't include duplicates in the report\nmutate(fs$items, published = as.Date(published)) %&gt;% \n  filter(published &gt;= as.Date(\"2018-12-01\")) %&gt;%\n  filter(engagement &gt; fivenum(engagement)[4]) %&gt;% \n  filter(!is.na(summary_content)) %&gt;% \n  mutate(alt_url = map_chr(alternate, ~.x[[1]])) %&gt;% \n  distinct(alt_url, .keep_all = TRUE) %&gt;% \n  slice(1:10) -&gt; for_report\n\n# render the report\nrender_stream(\n  feedly_stream = for_report, \n  title = \"Cybersecurity News\", \n  include_visual = TRUE,\n  browse = TRUE\n)\n<\/code><\/pre>\n<p>Which makes the following <a href=\"https:\/\/rud.is\/seymour\/sample-report.Rmd\">Rmd<\/a> and <a href=\"https:\/\/rud.is\/seymour\/sample-report.html\">HTML<\/a>. (So, no need to &#8220;upgrade&#8221; to &#8220;Teams&#8221; to make newsletters!).<\/p>\n<h3>FIN<\/h3>\n<p>As noted, the <a href=\"https:\/\/rud.is\/dl\/2018-feedly-r-blogs.rds\">2018 data for R Weekly (Live) &amp; R-bloggers is available<\/a> and you can find the <code>seymour<\/code> package on [<a href=\"https:\/\/gitlab.com\/hrbrmstr\/seymour\">GL<\/a> | <a href=\"https:\/\/github.com\/hrbrmstr\/seymour\">GH<\/a>].<\/p>\n<p>If you&#8217;re not a Feedly user I strongly encourage you to give it a go! And, if you don&#8217;t subscribe to R Weekly, you should make that your first New Year&#8217;s Resolution.<\/p>\n<p>Here&#8217;s looking to another year of great R content across the R blogosphere!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, 2018 has flown by and today seems like an appropriate time to take a look at the landscape of R bloggerdom as seen through the eyes of readers of R-bloggers and R Weekly. We&#8217;ll do this via a new package designed to make it easier to treat Feedly as a data source: seymour [GL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11698,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[816,91],"tags":[],"class_list":["post-11694","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-feedly","category-r"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Exploring 2018 R-bloggers &amp; R Weekly Posts with Feedly &amp; the &#039;seymour&#039; package - rud.is<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exploring 2018 R-bloggers &amp; R Weekly Posts with Feedly &amp; the &#039;seymour&#039; package - rud.is\" \/>\n<meta property=\"og:description\" content=\"Well, 2018 has flown by and today seems like an appropriate time to take a look at the landscape of R bloggerdom as seen through the eyes of readers of R-bloggers and R Weekly. We&#8217;ll do this via a new package designed to make it easier to treat Feedly as a data source: seymour [GL [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-31T12:36:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"864\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"hrbrmstr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hrbrmstr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Exploring 2018 R-bloggers &#038; R Weekly Posts with Feedly &#038; the &#8216;seymour&#8217; package\",\"datePublished\":\"2018-12-31T12:36:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/\"},\"wordCount\":2643,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/12\\\/author-month-1.png?fit=960%2C864&ssl=1\",\"articleSection\":[\"Feedly\",\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/\",\"name\":\"Exploring 2018 R-bloggers & R Weekly Posts with Feedly & the 'seymour' package - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/12\\\/author-month-1.png?fit=960%2C864&ssl=1\",\"datePublished\":\"2018-12-31T12:36:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/12\\\/author-month-1.png?fit=960%2C864&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2018\\\/12\\\/author-month-1.png?fit=960%2C864&ssl=1\",\"width\":960,\"height\":864},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2018\\\/12\\\/31\\\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exploring 2018 R-bloggers &#038; R Weekly Posts with Feedly &#038; the &#8216;seymour&#8217; package\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/\",\"name\":\"rud.is\",\"description\":\"&quot;In God we trust. All others must bring data&quot;\",\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rud.is\\\/b\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\",\"name\":\"hrbrmstr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"width\":460,\"height\":460,\"caption\":\"hrbrmstr\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\"},\"description\":\"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7\",\"sameAs\":[\"http:\\\/\\\/rud.is\"],\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/author\\\/hrbrmstr\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exploring 2018 R-bloggers & R Weekly Posts with Feedly & the 'seymour' package - rud.is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/","og_locale":"en_US","og_type":"article","og_title":"Exploring 2018 R-bloggers & R Weekly Posts with Feedly & the 'seymour' package - rud.is","og_description":"Well, 2018 has flown by and today seems like an appropriate time to take a look at the landscape of R bloggerdom as seen through the eyes of readers of R-bloggers and R Weekly. We&#8217;ll do this via a new package designed to make it easier to treat Feedly as a data source: seymour [GL [&hellip;]","og_url":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/","og_site_name":"rud.is","article_published_time":"2018-12-31T12:36:32+00:00","og_image":[{"width":960,"height":864,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&ssl=1","type":"image\/png"}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"25 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Exploring 2018 R-bloggers &#038; R Weekly Posts with Feedly &#038; the &#8216;seymour&#8217; package","datePublished":"2018-12-31T12:36:32+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/"},"wordCount":2643,"commentCount":3,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&ssl=1","articleSection":["Feedly","R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/","url":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/","name":"Exploring 2018 R-bloggers & R Weekly Posts with Feedly & the 'seymour' package - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&ssl=1","datePublished":"2018-12-31T12:36:32+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&ssl=1","width":960,"height":864},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2018\/12\/31\/exploring-2018-r-bloggers-r-weekly-posts-with-feedly-the-seymour-package\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Exploring 2018 R-bloggers &#038; R Weekly Posts with Feedly &#038; the &#8216;seymour&#8217; package"}]},{"@type":"WebSite","@id":"https:\/\/rud.is\/b\/#website","url":"https:\/\/rud.is\/b\/","name":"rud.is","description":"&quot;In God we trust. All others must bring data&quot;","publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rud.is\/b\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886","name":"hrbrmstr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","width":460,"height":460,"caption":"hrbrmstr"},"logo":{"@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1"},"description":"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7","sameAs":["http:\/\/rud.is"],"url":"https:\/\/rud.is\/b\/author\/hrbrmstr\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/12\/author-month-1.png?fit=960%2C864&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-32C","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":11837,"url":"https:\/\/rud.is\/b\/2019\/01\/30\/quick-hit-using-seymour-to-subscribe-to-your-gitlahub-repo-issues-in-feedly\/","url_meta":{"origin":11694,"position":0},"title":"Quick Hit: Using seymour to Subscribe to your Git[la|hu]b Repo Issues in Feedly","author":"hrbrmstr","date":"2019-01-30","format":false,"excerpt":"The seymour? Feedly API package has been updated to support subscribing to RSS\/Atom feeds. Previously the package was intended to just treat your Feedly as a data source, but there was a compelling use case for enabling subscription support: subscribing to code repository issues. Sure, there's already email notice integration\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9442,"url":"https:\/\/rud.is\/b\/2018\/04\/04\/exploring-r-bloggers-posts-with-the-feedly-api\/","url_meta":{"origin":11694,"position":1},"title":"Exploring R-Bloggers Posts with the Feedly API","author":"hrbrmstr","date":"2018-04-04","format":false,"excerpt":"There's a yuge chance you're reading this post (at least initially) on R-Bloggers right now (though you should also check out R Weekly and add their live feed to your RSS reader pronto!). It's a central \"watering hole\" for R folks and is read by many (IIRC over 20,000 Feedly\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/rb-post-count.png?fit=1200%2C568&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/rb-post-count.png?fit=1200%2C568&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/rb-post-count.png?fit=1200%2C568&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/rb-post-count.png?fit=1200%2C568&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/rb-post-count.png?fit=1200%2C568&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":10100,"url":"https:\/\/rud.is\/b\/2018\/04\/16\/by-request-retrieving-your-feedly-saved-for-later-entries\/","url_meta":{"origin":11694,"position":2},"title":"By Request: Retrieving Your Feedly &#8220;Saved for Later&#8221; Entries","author":"hrbrmstr","date":"2018-04-16","format":false,"excerpt":"@mkjcktzn asked if one can access Feedly \"Saved for Later\" items via the API. The answer is \"Yes!\", and it builds off of that previous post. You'll need to read it and get your authentication key (still no package ?) before continuing. We'll use most (I think \"all\") of the\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10104,"url":"https:\/\/rud.is\/b\/2018\/04\/18\/access-your-saved-for-later-feedly-items-by-hooking-up-dropbox-to-feedly\/","url_meta":{"origin":11694,"position":3},"title":"Access Your &#8220;Saved for Later&#8221; Feedly Items By Hooking Up Dropbox to Feedly","author":"hrbrmstr","date":"2018-04-18","format":false,"excerpt":"If you come here often you've noticed that I've been writing a semi-frequent series on using the Feedly API with R. A recent post was created to help someone use the API. It worked for them but \u2014 as you can see in the comment \u2014 an assertion was made\u2026","rel":"","context":"In &quot;data wrangling&quot;","block_context":{"text":"data wrangling","link":"https:\/\/rud.is\/b\/category\/data-wrangling\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7359,"url":"https:\/\/rud.is\/b\/2017\/12\/01\/a-public-apology-to-tal-r-bloggers-the-trouble-with-tibbles\/","url_meta":{"origin":11694,"position":4},"title":"A Public Apology to Tal\/R-Bloggers + The Trouble With Tibbles","author":"hrbrmstr","date":"2017-12-01","format":false,"excerpt":"Over the past few weeks, I had been noticing that some posts in the R-bloggers feed were getting truncated in Feedly. I don't remember when I noticed that since I usually click through immediately from the headline entry to the R-bloggers page vs read in Feedly since ultimately I want\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":13066,"url":"https:\/\/rud.is\/b\/2021\/05\/09\/feedly-mini-extension-removed-from-chrome-store-due-to-malware\/","url_meta":{"origin":11694,"position":5},"title":"Feedly Mini Extension Removed From Chrome Store Due To &#8220;Malware&#8221;","author":"hrbrmstr","date":"2021-05-09","format":false,"excerpt":"On or about Friday evening (May 7, 2021) Edge notified me that the Feedly Mini extension (one of the only extensions I use as extensions are dangerous things) was remove from the store due to \"malware\". Feedly is used by many newshounds, and with 2021 being a very bad year\u2026","rel":"","context":"In &quot;Cybersecurity&quot;","block_context":{"text":"Cybersecurity","link":"https:\/\/rud.is\/b\/category\/cybersecurity\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/11694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/comments?post=11694"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/11694\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/11698"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=11694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=11694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=11694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}