嗨。我是IDG通信的Sharon Machlis,在这里为您带来更多关于R: Turbocharge R Markdown与运行时闪亮的交互。
R Markdown是我最喜欢的关于现代R的东西之一。它提供了一种简单的方法来将文本、R代码和R代码的结果合并到一个文档中。当该文档是HTML时,您可以添加一些用户与包的交互,如用于可搜索表的DT或用于可缩放地图的传单。
但是,如果你想放了那个文件夹的互动潜力,考虑增加“运行时有光泽。”
shining是一个用于R的Web应用程序框架,具有非常特定的格式。它需要用户界面和服务器逻辑的特殊部分,以及放置所显示的每个项的额外代码。对于新手来说,华丽的应用程序布局的语法可能会让人望而生畏。
你可能不知道的是:您可以打开的R降价文档变成一个迷你闪亮应用,而无需大量是刚性结构。这是一个很好的方式来缓解进入学习的框架。您可以直接跳到与用户输入和实验的结果,而不必担心像嵌套的括号内,所有的逗号走典型的新手问题。而且即使你更闪亮的经历,一个闪亮的文件有时会令意义,如果你并不需要一个完整的应用。我发现它是测试功能的有效途径担心布局之前。
因此,让我们开始吧。
这是一个传统的R Markdown文档,其中的表显示了一些按马萨诸塞州邮政编码划分的人口统计数据。
该表是可搜索的,因此用户可以按邮政编码、城市和其他列进行搜索;它们也可以按列排序。我可以查看米德尔塞克斯郡的所有邮政编码,然后选择家庭收入中值最高的地区,或者每月房价最高的地区,等等。然而,虽然我可以对表进行排序,但其他项不会更改。同样的直方图,同样的文本。
这将是很好的有一个交互式甚至更多的信息。我希望用户能够选择个别城市,看到的页面改变一切。
这就是运行时闪亮登场的地方。
我将打开相同文档的副本,并将runtime: shining添加到YAML中。当我这样做的时候,请注意针织图标。你看到它从“编织”变成“运行文档”了吗?这是一个小小的应用程序。我还将添加闪亮的包,我正在加载。
我有同样的文档的另一个副本,用一行代码,增加了一个下拉列表,以便用户可以选择一个或多个城市。selectInput()是一个创建的下拉的功能。让我走在参数selectInput()
第一个,“mycities”,是将存储任何用户挑选变量名。这第二个说法是,将下拉列表中显示的文本。第三个参数的选择,列出了所有在下拉列表中的可能值。在这种情况下,我把所有的独特的城市的名字在我的数据集,然后按字母顺序对它们进行排序。多等号真正让用户选择一个以上的城市。最后,选择=波士顿默认为波士顿为所选的城市。到目前为止相当简单。
大约有接下来会发生什么了几个重要的点。Mycities不再是一个“正规” R变量。它是动态的,根据用户的输入。这意味着你不能称其为只是“mycities”了。相反,它是目前输入$ mycities。
1.凡是使用动态输入也是动态的。这意味着它不能像常规R参数或者处理。有光泽的工作时,如果你要记住,你将节省很多麻烦。
2.值 - 诸如数据帧 - 需要“反应性”。这是那么容易,因为在一个特殊的函数进行包装,但你必须记住这样做。
3.凡是显示动态内容 - 一张桌子,一张图,柱状图,甚至文本 - 需要以一种特殊的方式来呈现,采用有光泽的特殊渲染功能之一。好消息是,有光泽采用的大部分监测变化和计算结果的功能性护理。我们只需要记住使用的特殊功能。
让我告诉你我是什么意思。
我想创建一个名为MYDATA一个数据帧的任何行的过滤器,其中城市用户所选择的城市之一。然而,一个普通的dplyr过滤器命令将不起作用。
你看到错误消息?mycities是找不到的,因为它不是一个普通R参数。的方式闪亮的作品,我需要把它称为输入$ mycities。
我将把mycities改为输入$mycities。但还是会得到一个错误。
您可能会看到错误很多,当你开始有光泽。这意味着,你想创造一些动态的常规 - [R方式,取而代之的是,你需要使它被动。
幸运的是,在这种情况下,它与使用反应式函数一样简单。
所述MYDATA对象现在持有反应性的表达。
现在你可以看到我们有一个下拉列表,但它还不能做任何事情。让我们添加一个数据表。
这段代码也不能工作,原因有二。首先,mydata是一个反应性表达式,而不是一个典型的变量。我不能用mydata来访问它的值。我需要像引用一个普通函数那样引用它:在它后面加上括号。
这个错误消息有点神秘,但它说的是mydata不是一个数据框架或矩阵。事实上,它是一个反应性的表达式。我们通过添加括号来解决这个问题
啊,这里有一个我们已经熟悉的错误消息:我试图以“常规R方式”显示动态内容。这是行不通的。
为了解决这个问题,我需要一个闪亮的渲染函数。许多可视化包都有自己独特的闪亮呈现函数,DT就是其中之一。包装器函数是renderDT。我将添加它并再次运行文档。它的工作原理!
我可以使用相同的mydata反应值来创建直方图。
甚至还有一张地图。
这是很多参加如果你是新来的光泽,你需要一些实践 - 就像任何编码的技能 - 这是有道理之前。但是,如果你永远记住,任何动态 - 值或显示器 - 需要特殊处理,这是向前迈进了一大步。
有关本集代码的更多细节,如果您将其作为独立视频观看,请在屏幕上的URL中查看附带的InfoWorld文章。
关于R标记标记闪亮文档的最后一点。一旦你添加了闪亮的运行时,它就不再是一个HTML文件了——它是一个迷你应用程序。这意味着它需要一个闪亮的服务器来运行。
任何使用R、RStudio和闪亮包的人在他们的本地系统上都有一个闪亮的服务器,因此很容易与其他R用户共享这些服务器。你可以给他们发一份文件。或者您可以将其作为zip或tar文件发布到网上,并使用闪亮的runUrl命令。
有对GitHub上的文档中的特殊runGitHub和runGist功能。
但机会是,在某些时候,你会想展示你的工作不[R用户。这需要一个闪亮的服务器的某处。
一种选择是RStudio的shinyapps.io服务。它是免费的几个有限的公共应用程序,但你需要一个付费帐户什么严重。
您还可以在AWS或谷歌计算引擎等云服务上构建自己的服务器。你只需要RStudio闪亮的服务器软件的免费开源版本。在数字海洋云服务上有一个很棒的分步教程,您可以构建并运行一个小而闪亮的服务器,每个月只需5美元。
这一集就到这里,感谢收看!想了解更多关于R的技巧,你可以去go dot infoworld . com斜杠上的“用R做更多”页面,除R外都是小写字母。你也可以在YouTube IDG技术对话频道上找到“用R做更多”的播放列表。
希望下一集再见!