

{"id":4867,"date":"2017-01-10T10:37:49","date_gmt":"2017-01-10T15:37:49","guid":{"rendered":"https:\/\/rud.is\/b\/?p=4867"},"modified":"2018-03-07T17:25:52","modified_gmt":"2018-03-07T22:25:52","slug":"knit-directly-to-jupyter-notebooks-from-rstudio","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/","title":{"rendered":"Knit directly to jupyter notebooks from RStudio"},"content":{"rendered":"<p>Did you know that you can completely replace the &#8220;knitting&#8221; engine in R Markdown documents? Well, you can!<\/p>\n<p>Why would you want to do this? Well, in the case of this post, to commit the unpardonable sin of creating a clunky jupyter notebook from a pristine Rmd file.<\/p>\n<p>I&#8217;m definitely not &#8220;a fan&#8221; of &#8220;notebook-style&#8221; interactive data science workflows (apologies to RStudio, but I don&#8217;t even like their take on the interactive notebook). However, if you work with folks who are more productive in jupyter-style environments, it can be handy to be able to move back and forth between the <code>ipynb<\/code> and <code>Rmd<\/code> formats.<\/p>\n<p>The <a href=\"https:\/\/github.com\/aaren\/notedown\"><code>notedown<\/code><\/a> module and command-line tool does just that. I came across that after seeing <a href=\"https:\/\/github.com\/lecy\/RMD-to-Jupyter\">this <code>notedown<\/code> example<\/a>. There&#8217;s a script there to do the conversion but it&#8217;s very Windows-specific and it&#8217;s a pretty manual endeavour if all you want to do is quickly generate both an <code>ipynb<\/code> file and a notebook preview <code>html<\/code> file from an Rmd you&#8217;re working on.<\/p>\n<p>We can exploit the fact that you can specify a <code>knit:<\/code> parameter in the Rmd YAML header. Said parameter can be inline code or be a reference to a function in a package. When you use the &#8220;Knit&#8221; command from RStudio (button or key-cmd-shortcut) this parameter will cause the Rmd file to be passed to that function and bypass all <code>pandoc<\/code> processing. Your function has to do all the heavy lifting.<\/p>\n<p>To that end, I modified my (github only for now) <a href=\"https:\/\/github.com\/hrbrmstr\/markdowntemplates\"><code>markdowntemplates<\/code><\/a> package and added a <code>to_jupyter()<\/code> function. Provided you have jupyter setup correctly (despite what the python folk say said task is not always as easy as they&#8217;d like you to believe) and <code>notedown<\/code> installed properly, adding <code>knit: markdowntemplates::to_jupyter<\/code> to the YAML header of (in theory) any Rmd document and knitting it via RStudio will result in<\/p>\n<ul>\n<li>an <code>ipynb<\/code> file being generated<\/li>\n<li>an <code>html<\/code> file generated via <code>nbconvert<\/code>ing the notebook file, and <\/li>\n<li>said HTML file being rendered in your system&#8217;s default browser<\/li>\n<\/ul>\n<p>You can take <a href=\"https:\/\/rud.is\/dl\/notedown\/notedown.Rmd\">this test Rmd<\/a>:<\/p>\n<pre id=\"rmd-test-01\"><code class=\"language-r\">---\r\nknit: markdowntemplates::to_jupyter\r\n---\r\n## Notedown Test\r\n\r\nLet&#039;s try a python block\r\n\r\n```{r engine=&quot;python&quot;}\r\ndef test(x):\r\n  return x * x\r\ntest(2)\r\n```\r\n\r\nAnd a ggplot test\r\n\r\n```{r}\r\nsuppressPackageStartupMessages(library(ggplot2))\r\n```\r\n\r\nWe&#039;ll use an old friend\r\n\r\n```{r}\r\nhead(mtcars)\r\n```\r\n\r\nand plot it:\r\n\r\n```{r}\r\nggplot(mtcars, aes(wt, mpg)) + geom_point() + ggthemes::theme_fivethirtyeight()\r\n```<\/code><\/pre>\n<p>and, after doing <code>devtools::install_github(\"hrbrmstr\/markdowntemplates\")<\/code> and ensuring you have <code>notedown<\/code> working, knit it in RStudio to generate <a href=\"https:\/\/rud.is\/dl\/notedown\/notedown.ipynb\">the <code>ipynb<\/code> file<\/a> and render an HTML file:<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/rud.is\/dl\/notedown\/notedown.html\" seamless width=\"100%\" height=\"1250px\"><\/iframe><\/p>\n<p>Note the python block is a fully functioning notebook cell. I haven&#8217;t tried other <em>magic<\/em> language cells, but they should work according to the <code>notedown<\/code> docs.<\/p>\n<p>I&#8217;ve only performed light testing (on a MacBook Pro with jupyter running under python 3.x) and I&#8217;m sure there will be issues (it&#8217;s python, it&#8217;s jupyter and this is dark alchemy bridging those two universes), so when you run into errors, please <a href=\"https:\/\/github.com\/hrbrmstr\/markdowntemplates\/issues\">file an issue<\/a>. Also drop any feature requests to the same location.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Did you know that you can completely replace the &#8220;knitting&#8221; engine in R Markdown documents? Well, you can! Why would you want to do this? Well, in the case of this post, to commit the unpardonable sin of creating a clunky jupyter notebook from a pristine Rmd file. I&#8217;m definitely not &#8220;a fan&#8221; of &#8220;notebook-style&#8221; [&hellip;]<\/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":true,"_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":[640,91],"tags":[810],"class_list":["post-4867","post","type-post","status-publish","format-standard","hentry","category-python-2","category-r","tag-post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Knit directly to jupyter notebooks from RStudio - 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\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Knit directly to jupyter notebooks from RStudio - rud.is\" \/>\n<meta property=\"og:description\" content=\"Did you know that you can completely replace the &#8220;knitting&#8221; engine in R Markdown documents? Well, you can! Why would you want to do this? Well, in the case of this post, to commit the unpardonable sin of creating a clunky jupyter notebook from a pristine Rmd file. I&#8217;m definitely not &#8220;a fan&#8221; of &#8220;notebook-style&#8221; [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-10T15:37:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-07T22:25:52+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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Knit directly to jupyter notebooks from RStudio\",\"datePublished\":\"2017-01-10T15:37:49+00:00\",\"dateModified\":\"2018-03-07T22:25:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/\"},\"wordCount\":444,\"commentCount\":8,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"keywords\":[\"post\"],\"articleSection\":[\"Python\",\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/\",\"name\":\"Knit directly to jupyter notebooks from RStudio - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"datePublished\":\"2017-01-10T15:37:49+00:00\",\"dateModified\":\"2018-03-07T22:25:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/01\\\/10\\\/knit-directly-to-jupyter-notebooks-from-rstudio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Knit directly to jupyter notebooks from RStudio\"}]},{\"@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":"Knit directly to jupyter notebooks from RStudio - 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\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/","og_locale":"en_US","og_type":"article","og_title":"Knit directly to jupyter notebooks from RStudio - rud.is","og_description":"Did you know that you can completely replace the &#8220;knitting&#8221; engine in R Markdown documents? Well, you can! Why would you want to do this? Well, in the case of this post, to commit the unpardonable sin of creating a clunky jupyter notebook from a pristine Rmd file. I&#8217;m definitely not &#8220;a fan&#8221; of &#8220;notebook-style&#8221; [&hellip;]","og_url":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/","og_site_name":"rud.is","article_published_time":"2017-01-10T15:37:49+00:00","article_modified_time":"2018-03-07T22:25:52+00:00","author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Knit directly to jupyter notebooks from RStudio","datePublished":"2017-01-10T15:37:49+00:00","dateModified":"2018-03-07T22:25:52+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/"},"wordCount":444,"commentCount":8,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"keywords":["post"],"articleSection":["Python","R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/","url":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/","name":"Knit directly to jupyter notebooks from RStudio - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2017-01-10T15:37:49+00:00","dateModified":"2018-03-07T22:25:52+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2017\/01\/10\/knit-directly-to-jupyter-notebooks-from-rstudio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Knit directly to jupyter notebooks from RStudio"}]},{"@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-1gv","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4772,"url":"https:\/\/rud.is\/b\/2016\/12\/22\/pipes-everywhere\/","url_meta":{"origin":4867,"position":0},"title":"Pipes (%>%) Everywhere","author":"hrbrmstr","date":"2016-12-22","format":false,"excerpt":"An R user asked a question regarding whether it's possible to have the RStudio pipe (%>%) shortcut (Cmd-Shift-M) available in other macOS applications. If you're using Alfred then you can use this workflow for said task (IIRC this requires an Alfred license which is reasonably cheap). When you add it\u2026","rel":"","context":"In &quot;Alfred&quot;","block_context":{"text":"Alfred","link":"https:\/\/rud.is\/b\/category\/alfred\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5796,"url":"https:\/\/rud.is\/b\/2017\/04\/07\/r%e2%81%b6-rstudio-server-client-make-an-app-for-that\/","url_meta":{"origin":4867,"position":1},"title":"R\u2076 \u2014 RStudio Server Client? Make An App For That!","author":"hrbrmstr","date":"2017-04-07","format":false,"excerpt":"RStudio is a great way to work through analyses tasks, and I suspect most folks use the \"desktop\" version of the product on their local workstations. The fine folks at RStudio also make a server version (the codebase for RStudio is able to generate server or desktop and they are\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":11346,"url":"https:\/\/rud.is\/b\/2018\/08\/11\/connecting-apache-zeppelin-up-to-amazon-athena-with-an-iam-profile-name\/","url_meta":{"origin":4867,"position":2},"title":"Connecting Apache Zeppelin Up to Amazon Athena with an IAM Profile Name","author":"hrbrmstr","date":"2018-08-11","format":false,"excerpt":"Apache Zeppelin is a \"notebook\" alternative to Jupyter (and other) notebooks. It supports a plethora of kernels\/interpreters and can do a ton of things that this post isn't going to discuss (perhaps future ones will, especially since it's the first \"notebook\" environment I've been able to tolerate for longer than\u2026","rel":"","context":"In &quot;athena&quot;","block_context":{"text":"athena","link":"https:\/\/rud.is\/b\/category\/athena\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3914,"url":"https:\/\/rud.is\/b\/2016\/02\/04\/alternate-r-markdown-templates\/","url_meta":{"origin":4867,"position":3},"title":"Alternate R Markdown Templates","author":"hrbrmstr","date":"2016-02-04","format":false,"excerpt":"The `knitr`\/R markdown system is a great way to organize reports and analyses. However, the built-in ones (that come with RStudio\/the `rmarkdown` package) rely on Bootstrap and also use jQuery. There's nothing wrong with that, but the generated standalone HTML documents (which are a great way to distribute reports) don't\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":12763,"url":"https:\/\/rud.is\/b\/2020\/05\/25\/rswitch-1-7-0-has-been-released\/","url_meta":{"origin":4867,"position":4},"title":"RSwitch 1.7.0 Has Been Released","author":"hrbrmstr","date":"2020-05-25","format":false,"excerpt":"I (and, apparently, Gandalf O_o) are pleased to announce that RSwitch version 1.7.0 has been released. (Direct Download) RSwitch is a macOS menubar utility that: makes it dead simple to manage multiple macOS R versions use the latest RStudio daily builds access remote RStudio Server sessions using in a purpose-built\u2026","rel":"","context":"In &quot;Apple&quot;","block_context":{"text":"Apple","link":"https:\/\/rud.is\/b\/category\/apple\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2020\/05\/gandalf-rswitch.png?fit=480%2C280&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":11369,"url":"https:\/\/rud.is\/b\/2018\/08\/11\/connecting-apache-zeppelin-and-apache-drill-postgresql-etc\/","url_meta":{"origin":4867,"position":5},"title":"Connecting Apache Zeppelin and Apache Drill, PostgreSQL, etc.","author":"hrbrmstr","date":"2018-08-11","format":false,"excerpt":"A previous post showed how to use a different authentication provider to wire up Apache Zeppelin and Amazon Athena. As noted in that post, Zeppelin is a \"notebook\" alternative to Jupyter (and other) notebooks. Unlike Jupyter, I can tolerate Zeppelin and it's got some nifty features like plug-and-play JDBC access.\u2026","rel":"","context":"In &quot;Apache Drill&quot;","block_context":{"text":"Apache Drill","link":"https:\/\/rud.is\/b\/category\/apache-drill\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/z-drill-2.png?fit=1200%2C542&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/z-drill-2.png?fit=1200%2C542&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/z-drill-2.png?fit=1200%2C542&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/z-drill-2.png?fit=1200%2C542&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/z-drill-2.png?fit=1200%2C542&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/4867","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=4867"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/4867\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=4867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=4867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=4867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}