

{"id":3262,"date":"2015-02-04T15:27:20","date_gmt":"2015-02-04T20:27:20","guid":{"rendered":"http:\/\/rud.is\/b\/?p=3262"},"modified":"2018-03-07T16:44:05","modified_gmt":"2018-03-07T21:44:05","slug":"a-step-to-the-right-in-r-assignments","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/","title":{"rendered":"A Step to the Right in R Assignments"},"content":{"rendered":"<p>I received an out-of-band question on the use of `%<>%` in my [CDC FluView](rud.is\/b\/2015\/01\/10\/new-r-package-cdcfluview-retrieve-flu-data-from-cdcs-fluview-portal\/) post, and took the opportunity to address it in a broader, public fashion.<\/p>\n<p>Anyone using R knows that the two most common methods of assignment are the venerable (and sensible) left arrow `<-` and it's lesser cousin `=`. `<-` has an evil sibling, `<<-`, which is used when you want\/need to have R search through parent environments for an existing definition of the variable being assigned (up to the global environment).\n\nSince the introduction of the \"piping idom\"--`%>%`&#8211;made popular by `magrittr`, `dplyr`, `ggvis` and other packages, I have struggled with the use of `<-` in pipes.  Since pipes flow data in a virtual forward motion, that LHS (left hand side) assignment has an awkward characteristic about it. Furthermore, many times you are piping from an object with the intent to replace the contents of said object. For example:\n\n\n\n<pre lang=\"rsplus\">iris$Sepal.Length <- \r\n  iris$Sepal.Length %>%\r\n  sqrt<\/pre>\n<p>(which is from the `magrittr` documentation).<\/p>\n<p>To avoid the repetition of the left-hand side immediately after the assignment operator, Bache &amp; Wickham came up with the `%<>%` operator, which shortens the above to:<\/p>\n<pre lang=\"rsplus\">iris$Sepal.Length %<>% sqrt<\/pre>\n<p>Try as I may (including the CDC FluView blog post), that way of assigning variables still _feels_ awkward, and is definitely confusing to new R users. But, what&#8217;s the alternative? I believe it&#8217;s R&#8217;s infrequently used `->` RHS assignment operator.<\/p>\n<p>Let&#8217;s look at that in the context of the somewhat-long pipe in the CDC FluView example:<\/p>\n<pre lang=\"rsplus\">dat %>%\r\n  mutate(REGION=factor(REGION,\r\n                       levels=unique(REGION),\r\n                       labels=c(\"Boston\", \"New York\",\r\n                                \"Philadelphia\", \"Atlanta\",\r\n                                \"Chicago\", \"Dallas\",\r\n                                \"Kansas City\", \"Denver\",\r\n                                \"San Francisco\", \"Seattle\"),\r\n                       ordered=TRUE)) %>%\r\n  mutate(season_week=ifelse(WEEK>=40, WEEK-40, WEEK),\r\n         season=ifelse(WEEK<40,\r\n                       sprintf(\"%d-%d\", YEAR-1, YEAR),\r\n                       sprintf(\"%d-%d\", YEAR, YEAR+1))) -> dat<\/pre>\n<p>That pipe flow says _&#8221;take `dat`, change-up some columns, make some new columns and reassign into `dat`&#8221;_. It&#8217;s a very natural flow and reads well, too, since you&#8217;re following a process up to it&#8217;s final destination. It&#8217;s even more natural in pipes that actually transform the data into something else. For example, to get a vector of the number of US male births since 1880, we&#8217;d do:<\/p>\n<pre lang=\"rsplus\">library(magrittr)\r\nlibrary(rvest)\r\n\r\nbirths <- html(\"http:\/\/www.ssa.gov\/oact\/babynames\/numberUSbirths.html\")\r\n\r\nbirths %>%\r\n  html_nodes(\"table\") %>%\r\n  extract2(2) %>%\r\n  html_table %>%\r\n  use_series(Male) %>%\r\n  gsub(\",\", \"\", .) %>%\r\n  as.numeric -> males<\/pre>\n<p>That&#8217;s very readable (one of the benefits of pipes) and the flow, again, makes sense. Compare that to it&#8217;s base R counterpart:<\/p>\n<pre lang=\"rsplus\">males <- as.numeric(gsub(\",\", \"\", html_table(html_nodes(births, \"table\")[[2]])$Male))<\/pre>\n<p>The base R version is short and the LHS assignment fits well as the values \"pop out\" of the function calls. But, it's also only initially, quickly readable to veteran R folks. Since code needs to be readable, maintainable and (often times) shared with folks on a team, I believe the pipes help increase overall productivity and aid in documenting what  is trying to be achieved in that portion of an analysis (especially when combined with `dplyr` idioms).<\/p>\n<p>Pipes are here to stay and they are definitely a part of my data analysis workflows. Moving forward, so will RHS (`->`) assignments from pipes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I received an out-of-band question on the use of `%%` in my [CDC FluView](rud.is\/b\/2015\/01\/10\/new-r-package-cdcfluview-retrieve-flu-data-from-cdcs-fluview-portal\/) post, and took the opportunity to address it in a broader, public fashion. Anyone using R knows that the two most common methods of assignment are the venerable (and sensible) left arrow &#8220;) assignments from pipes.<\/p>\n","protected":false},"author":1,"featured_media":0,"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":[7,91],"tags":[810],"class_list":["post-3262","post","type-post","status-publish","format-standard","hentry","category-programming","category-r","tag-post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Step to the Right in R Assignments - 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\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Step to the Right in R Assignments - rud.is\" \/>\n<meta property=\"og:description\" content=\"I received an out-of-band question on the use of `%%` in my [CDC FluView](rud.is\/b\/2015\/01\/10\/new-r-package-cdcfluview-retrieve-flu-data-from-cdcs-fluview-portal\/) post, and took the opportunity to address it in a broader, public fashion. Anyone using R knows that the two most common methods of assignment are the venerable (and sensible) left arrow ``) assignments from pipes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2015-02-04T20:27:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-07T21:44:05+00:00\" \/>\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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"A Step to the Right in R Assignments\",\"datePublished\":\"2015-02-04T20:27:20+00:00\",\"dateModified\":\"2018-03-07T21:44:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/\"},\"wordCount\":276,\"commentCount\":13,\"publisher\":{\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"keywords\":[\"post\"],\"articleSection\":[\"Programming\",\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/\",\"url\":\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/\",\"name\":\"A Step to the Right in R Assignments - rud.is\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/#website\"},\"datePublished\":\"2015-02-04T20:27:20+00:00\",\"dateModified\":\"2018-03-07T21:44:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rud.is\/b\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Step to the Right in R Assignments\"}]},{\"@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":"A Step to the Right in R Assignments - 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\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/","og_locale":"en_US","og_type":"article","og_title":"A Step to the Right in R Assignments - rud.is","og_description":"I received an out-of-band question on the use of `%%` in my [CDC FluView](rud.is\/b\/2015\/01\/10\/new-r-package-cdcfluview-retrieve-flu-data-from-cdcs-fluview-portal\/) post, and took the opportunity to address it in a broader, public fashion. Anyone using R knows that the two most common methods of assignment are the venerable (and sensible) left arrow ``) assignments from pipes.","og_url":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/","og_site_name":"rud.is","article_published_time":"2015-02-04T20:27:20+00:00","article_modified_time":"2018-03-07T21:44:05+00:00","author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"A Step to the Right in R Assignments","datePublished":"2015-02-04T20:27:20+00:00","dateModified":"2018-03-07T21:44:05+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/"},"wordCount":276,"commentCount":13,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"keywords":["post"],"articleSection":["Programming","R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/","url":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/","name":"A Step to the Right in R Assignments - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2015-02-04T20:27:20+00:00","dateModified":"2018-03-07T21:44:05+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2015\/02\/04\/a-step-to-the-right-in-r-assignments\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"A Step to the Right in R Assignments"}]},{"@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":"","jetpack_shortlink":"https:\/\/wp.me\/p23idr-QC","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":3215,"url":"https:\/\/rud.is\/b\/2015\/01\/10\/new-r-package-cdcfluview-retrieve-flu-data-from-cdcs-fluview-portal\/","url_meta":{"origin":3262,"position":0},"title":"New R Package: cdcfluview \u2014 Retrieve Flu Data from CDC&#8217;s FluView Portal","author":"hrbrmstr","date":"2015-01-10","format":false,"excerpt":"**NOTE** If there's a particular data set from http:\/\/www.cdc.gov\/flu\/weekly\/fluviewinteractive.htm that you want and that isn't in the pacakge, please file it as an issue and be as specific as you can (screen shot if possible). ----- Towards the end of 2014 I had been tinkering with flu data from the\u2026","rel":"","context":"In &quot;DataVis&quot;","block_context":{"text":"DataVis","link":"https:\/\/rud.is\/b\/category\/datavis-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3610,"url":"https:\/\/rud.is\/b\/2015\/08\/09\/cdcfluview-on-the-way-to-cran-7k\/","url_meta":{"origin":3262,"position":1},"title":"cdcfluview &#8211; On The Way to &#8220;CRAN 7K&#8221;","author":"hrbrmstr","date":"2015-08-09","format":false,"excerpt":"I like to turn coincidence into convergence whenever possible. This weekend, a user of [cdcfluview](http:\/\/github.com\/hrbrmstr\/cdcfluview) had a question that caused me to notice a difference in behaviour between the package was interacting with CDC FluView API, so I updated the package to accommodate the change and the user. Around the\u2026","rel":"","context":"In &quot;Data Analysis&quot;","block_context":{"text":"Data Analysis","link":"https:\/\/rud.is\/b\/category\/data-analysis-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12735,"url":"https:\/\/rud.is\/b\/2020\/04\/11\/new-package-cdccovidview-to-work-with-the-u-s-cdcs-new-covid-19-trackers-covidview-and-covid-net\/","url_meta":{"origin":3262,"position":2},"title":"New Package \u2014\u00a0{cdccovidview} \u2014 To Work with the U.S. CDC&#8217;s New COVID-19 Trackers: COVIDView and COVID-NET","author":"hrbrmstr","date":"2020-04-11","format":false,"excerpt":"The United States Centers for Disease Control (CDC from now on) has setup two new public surveillance resources for COVID-19. Together, COVIDView and COVID-NET provide similar weekly surveillance data as FluView does for influenza-like illnesses (ILI). The COVIDView resources are HTML tables (O_O) and, while the COVID-NET interface provides a\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":7020,"url":"https:\/\/rud.is\/b\/2017\/11\/06\/taking-a-shot-at-cdcfluview-v0-7-0-a-k-a-the-dangers-of-relying-on-hidden-apis\/","url_meta":{"origin":3262,"position":3},"title":"Taking a Shot at cdcfluview v0.7.0 (a.k.a. The Dangers of Relying on &#8216;Hidden&#8217; APIs)","author":"hrbrmstr","date":"2017-11-06","format":false,"excerpt":"Unlike @noamross, I am not an epidemiologist (NOTE: Noam battles pandemics before breakfast, so be super nice to him) but I do like to find kindred methodologies in other disciplines to help foster the growth of cybersecurity into something beyond it's current Barnum & Bailey state. I also love finding\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\/2017\/11\/unnamed-chunk-5-4.png?fit=672%2C480&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-5-4.png?fit=672%2C480&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-5-4.png?fit=672%2C480&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":12383,"url":"https:\/\/rud.is\/b\/2019\/06\/28\/quick-hit-dig-ging-into-dns-records-with-processx\/","url_meta":{"origin":3262,"position":4},"title":"Quick hit: &#8216;dig&#8217;-ging Into r-project.org DNS Records with {processx}","author":"hrbrmstr","date":"2019-06-28","format":false,"excerpt":"The r-project.org domain had some temporary technical difficulties this week (2019-29) that made reaching R-related resources problematic for a bunch of folks for a period of time. Incidents like this underscore the need for regional and network diversity when it comes to ensuring the availability of DNS services. That is,\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":12586,"url":"https:\/\/rud.is\/b\/2020\/01\/01\/writing-frictionless-r-package-wrappers-introduction\/","url_meta":{"origin":3262,"position":5},"title":"Writing Frictionless R Package Wrappers \u2014 Introduction","author":"hrbrmstr","date":"2020-01-01","format":false,"excerpt":"The R language and RStudio IDE are a powerful combination for \"getting stuff done\", and one aspect of R itself that makes it especially useful is the ability to use it with other programming languages via a robust foreign language interface capability1. The term \"foreign language\" refers to another programming\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":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/3262","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=3262"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/3262\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=3262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=3262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=3262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}