内容

1了解闪亮

闪亮的是一个r包,可以轻松地从R构建交互式Web应用程序(应用程序)。包装附带11个内置示例,每个示例都展示了有效的工作。这些示例中的每一个都是一个独立的应用程序。

你好,闪亮的示例绘制R的直方图忠实的数据集具有可配置数量的箱子。用户可以使用滑块栏更改箱数,该应用程序将立即响应其输入。你会使用你好,闪亮的探索闪亮应用程序的结构并创建您的第一个应用程序。

运行你好,闪亮的, 类型:

图书馆(闪亮)Runexample(“01_hello”)

1.1闪亮的应用程序的结构

闪亮的应用程序有两个组件:

用户界面(UI)脚本控制应用程序的布局和外观。它在命名的源文件中定义UI.R.。以下是UI.R.脚本为你好,闪亮的例子。

图书馆(闪亮)#定义绘制直方图shinyUI的应用程序的UI(FlultPage(#应用程序标题TitlePanel(“Hello Shiny!”),#侧栏具有滑块输入的Sidebarlayout的数量(Sidebanel(SliderInput(“垃圾箱”),“垃圾箱数:”,min = 1,max = 50,值= 30)),#显示生成的分布mainpanel(plotopput(“diftplot”)))))))))))

服务器。R脚本包含计算机需要构建应用程序的说明。这里是服务器。R档案你好,闪亮的例子。

库(闪亮)#定义绘制直方图shinyserver所需的服务器逻辑(生成直方图的函数(输入,输出){#表达式。表达式为#inclated to erlayplot以指示:##)它是“反应性“因此,当输入改变#2时应自动#重新执行(x),max(x),length.out =输入$ bins + 1)#使用指定数量的bins hist(x,breaks = bins,col ='darkgray',border ='white')})})

在一个层面上你好,闪亮的服务器脚本非常简单。它确实有一些计算,然后用所请求的箱数绘制直方图。

但是,您还会注意到大多数脚本都被包裹在呼叫中renderPlot。上面的评论函数解释了一下这个问题,但如果你发现它令人困惑,不要担心。我们很快就会覆盖这个概念。

你好,闪亮的应用程序并查看它的源代码。尝试培养一种对应用程序的工作方式。你的r会话将忙碌你好,闪亮的应用程序处于活动状态,因此您将无法运行任何R命令。R正在监视应用程序并执行应用程序的反应。要获取您的r会话,请点击转义或单击停止标志图标(在RStudio控制台面板的右上角)。

1.2运行一个应用程序

每个闪亮的应用程序都具有相同的结构:两个R脚本在目录中保存在一起。至少一个应用程序有UI.R.服务器。R文件,并且您可以通过制作新目录并保存一个应用程序来创建应用程序UI.R.服务器。R文件内部文件。每个闪亮的应用程序都需要自己的唯一目录。

您可以通过将其目录的名称提供给函数来运行闪亮的应用程序Runapp.。例如,如果你的应用程序在一个名为my_app,用以下代码运行它:

图书馆(闪亮)RunApp(“my_app”)

注意:的第一个参数Runapp.是从工作目录到应用程序目录的文件路径。上面的代码假定应用程序目录位于您的工作目录中;在这种情况下,文件路径只是目录的名称。

如果你想知道,那么你好,闪亮的应用程序的文件存储在一个特殊的系统目录中,设计用于与runexample.称呼。或者,您还可以通过调用来启动该应用程序

runapp(system.file(package =“shiny”,“示例”,“01_hello”))

1.3轮到你

创建名为的第一个闪亮的应用程序my_app。为此,启动RStudio并从文件菜单选择新项目...>新目录>闪亮的Web应用程序。作为目录名称输入所需的名称my_app。该项目将开始UI.R.服务器。R包含熟悉的代码你好,闪亮的应用程序。

要启动您的应用程序,请在R控制台中运行:

库(亮)runApp ()

或者,您可以单击运行应用程序按钮(在编辑器的顶部),或或使用键盘快捷方式:控制+ Shift + Enter在Windows / Linux,或命令+ shift + Enter在Mac上。

运行应用程序

Rstudio将默认将在新窗口中启动应用程序,但您也可以选择在专用查看器窗格中或在外部Web浏览器中启动应用程序。单击旁边的图标进行选择运行应用程序

运行应用程序

对你的应用做一些改变:

  1. 将标题更改为“Hello World!”。
  2. 设置滚动条的最小值为5。
  3. 将直方图颜色改为“深灰色”“天蓝色”

准备就绪后,再次启动您的应用程序。您的新应用应该匹配下面的图像。

modifiedapp.

2构建用户界面

既然你了解一个闪亮的应用程序的结构,现在是时候从头开始建立你的第一个应用程序了。我们将首先显示如何构建用户界面。您将学习如何布置用户界面并向其添加HTML元素。

我们将使用它my_app你以前做过。要开始编辑服务器。RUI.R.匹配以下脚本的文件:

UI.R.

ShinyUI(FluidPage())

服务器。R

ShinyServer(功能(输入,输出){})

这段代码是创建Shiny应用所需的最少代码。结果是一个带有空白用户界面的空白应用。

2.1布局

闪亮UI.R.脚本使用函数流化物创建一个自动调整到用户浏览器窗口尺寸的显示。控件中放置元素来布局应用程序流化物函数。

例如,UI.R.下面的脚本创建了一个用户界面,它有一个标题面板,然后是一个侧边栏布局,其中包括一个侧边栏面板和一个主面板。注意,这些元素被放置在流化物函数。

#ui.r shinyui(sperepage(titlepanel(“标题面板”),侧栏(侧巴托尔(“侧边栏(”侧栏面板)“,MainPanel(”主面板“)))))))

Sidebarlayout.

TitlePanel.Sidebarlayout.这两个最受欢迎的元素是什么流化物。他们创建了一个带有侧边栏的基本闪亮应用程序。Sidebarlayout.始终采取两个参数:

这些功能将内容放在侧栏或主面板中。

TitlePanel.Sidebarlayout.为闪亮的应用程序创建一个基本布局,但您也可以创建更高级的设计。例如,navbarPage创建包含导航栏的多页面用户界面。您还可以使用splitLayout,或者你可以使用fluidRow构建基于网格的布局。有关概述,请参见闪亮的骗子

2.2HTML内容

你可以添加内容到你的Shiny应用程序中,把它放在一个*控制板函数。例如,上面的应用程序在每个面板中显示一个字符串。单词“侧边栏面板”出现在侧边栏面板中,因为我们将字符串添加到侧巴班尔功能,即sidebarPanel(“侧边栏面板”)。标题面板和主面板中的文本也是如此。

要添加更高级的内容,可以使用Shiny的HTML标记函数之一。这些函数与常见的HTML5标记并行。作为一个例子,让我们尝试创建头文件。

2.2.1

创建一个头文件:

  • 选择标题函数(例如,h1h3)
  • 给它你想在标题中出现的文本

例如,你可以用“My title”创建一个第一级标题h1(“我的标题”)。如果在R中运行此命令,则会注意到它会产生HTML代码。

h1(“我的标题”)
## 

我的标题

要将该元素放在您的应用程序中,将其作为参数传递给TitlePanel.,侧巴班尔,或主帕尔。文本将显示在您的网页的相应面板中。如果使用逗号分隔它们,则可以在同一面板中放置多个元素。

试试这个。下面的脚本使用了所有六个级别的标题。更新您的UI.R.文件以匹配以下代码,然后重新启动您的应用程序。

#ui.r shinyui(sperepage(titlepanel(“我的闪亮应用程序”),侧栏(Sidebarpanel(),mainpanel(H1(“第一级标题”),H2(“第二级标题”),H3(“第三级标题”),H4(“第四级标题”),H5(“第五级标题”),H6(“第六级标题”))))))))))

现在你的应用看起来应该是这样的:

头

2.3其他标签

我们已经演示了如何使用头标记函数,但是还有更多的标记函数可供您使用。闪亮::标签包含110个函数的列表,每个函数构建特定的HTML标记。如果您熟悉HTML,您将按其名称识别这些标签。

名称(标签)
## [1]“a”“abbr”“地址”“区域”“文章”## [6]“抛开”“音频”“b”“b基本”“bdi”## [11]“bdo”“blockquote“”body“”br“”按钮“## [16]”Canvas“”标题“”CITE“”CONE“”COL“## [21]”COLGOUP“命令”“数据”“DataList”“DD”## [26]“del”“divn”“div”dl“## [31]”dt“”em“”嵌入“”firemsource“”fieldset“## [36]”figeqution“”图“页脚”“形式”“H1”## [41]“H3”“H3”“H4”“H5”“H6”## [46]“Hgroup”“HROUP”“HR”“HTML”## [51]“i”“iframe”“img”“输入”“Ins”## [56]“KBD”“Keygen”“标签”“Lim”“Li”## [61]“链接”“标记“”MAP“”MENU“”META“## [66]”仪表“”NOV“”NOSCREC“”OBETION“”OL“## [71]”OPTGROUP“选项”“输出”“PARAM”“PARAM”## [76]“Pre”“进步”“Q”“Ruby”“RP”## [81]“S”“SAMP”“SAMP”“脚本”“截面”部分“## [86]”选择“”“”源“”跨度“”强“## [91]”Super“”sub“”subs“”sup“”table“## [96]”tbond“”td“”td“”textarea“”tfoot“”tfoot“”tfoot“”tfoot“”th“## [101]“Thead”“时间”“标题”“tr”“track”## [106]“U”“UL”“var”“视频”“wbr”

要创建标记,请运行一个元素标签作为一个功能。例如,创建一个div标签,使用:

标签$ div ()

## 

您可以调用一些最受欢迎的标签,辅助功能使得可以更轻松地访问它们。例如,功能代码是一个包装标记$ code.并创建格式化为计算机代码的文本。其他可用的辅助功能是:一个,br,代码,div,新兴市场,h1,h2,h3,h4,h5,编辑,人力资源,IMG.,p,pre,跨度, 和强大的。其余标记函数的名称与本机R函数的名称冲突,因此您需要调用它们标签$语法。

3.控制部件

既然你知道如何创建用户界面的布局,现在是时候向您的应用添加一些控制小部件了。窗口小部件是用户可以与之交互的Web元素。小部件提供了从用户收集值并将其发送到您的应用的方法。当用户更改窗口小部件时,该值也会发生变化。

Shiny附带了一系列预构建的小部件,每个部件都使用名为R的透明函数创建。例如,功能sliderInput创建滑动条。标准的Shiny小部件是:

功能 小部件
actionButton 行动按钮
checkboxGroupInput 一组复选框
checkboxInput 单个复选框
dateInput. 帮助选择日期的日历
dateRangeInput 用于选择日期范围的一对日历
fileInput. 文件上传控件向导
隐形 帮助文本可以添加到输入表单中
numericInput 输入数字的字段
radiobutons. 一组单选按钮
SelectInput. 有可供选择的选项的框
sliderInput 滑块
submitButton. 提交按钮
TextInput. 输入文本的字段

小部件

其中一些窗口小部件是使用Twitter Bootstrap构建的,是一个用于构建用户界面的流行的开源框架。

3.1添加小部件

您可以以相同的方式将窗口小部件添加到用户界面,以便通过放置窗口小部件函数来添加其他类型的HTML内容侧巴班尔主帕尔在你的UI.R.文件。

每个小部件函数需要几个参数。每个小部件的前两个参数都是

剩余的参数因窗口小部件而异,这取决于窗口小部件需要做的工作。您可以在窗口小部件函数的帮助页面上找到小部件所需的确切参数,例如,?SelectInput.

下面的代码使应用程序如图所示。改变UI.R.脚本my_app来匹配它,然后重新启动应用程序。玩每个小部件,感受一下它的功能。尝试更改小部件函数的值并观察效果。

#ui.r shinyui(speterpage(titlepanel(“基本小部件”),fluistrow(列(3,h3(“按钮”),actbutton(“动作”,label =“action”),br(),br(),submitButton(“提交”)),列(3,H3(“单个复选框”),CheckBoxInput(“复选框”,标签=“选择A”,值= True)),列(3,CheckBoxGroupInput(“CheckGroup”,标签= H3(“复选框组”),选择=列表(“选择1”= 1,“选择2”= 2,“选择3”= 3),选择= 1),列(3,DateInput(“日期”),label = h3("Date input"), value = "2014-01-01")) ), fluidRow( column(3, dateRangeInput("dates", label = h3("Date range"))), column(3, fileInput("file", label = h3("File input"))), column(3, h3("Help text"), helpText("Note: help text isn't a true widget,", "but it provides an easy way to add text to", "accompany other widgets.")), column(3, numericInput("num", label = h3("Numeric input"), value = 1)) ), fluidRow( column(3, radioButtons("radio", label = h3("Radio buttons"), choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), selected = 1)), column(3, selectInput("select", label = h3("Select box"), choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), selected = 1)), column(3, sliderInput("slider1", label = h3("Sliders"), min = 0, max = 100, value = 50), sliderInput("slider2", "", min = 0, max = 100, value = c(25, 75)) ), column(3, textInput("text", label = h3("Text input"), value = "Enter text...")) ) ))

4马情节探险家

现在您将创建一个新的闪亮应用程序,创建一个交互式MA情节。该应用程序将允许您通过点击MA图选择一个基因,它将显示选定的基因计数图。

这个新的闪亮应用程序将需要它自己的新目录。关闭所有打开的项目,并创建一个名为ma_plot在您的工作目录中。这是我们拯救的地方UI.R.服务器。R下面描述的文件。

该应用程序将使用RNA-seq教程中的示例数据集。让我们从复制MA图开始。差分表达式调用的结果已经保存到数据文件中data.rda.。将文件复制到新创建的文件夹ma_plot,将您的工作目录更改为该文件夹,例如,使用setwd(“ma_plot”),并运行:

library(DESeq2) load("data.rda") res <- results(dds) ymax <- 5 plotMA(res, ylim=c(-ymax, ymax))

4.1显示闪亮的R输出

对于MA Plot出现在我们的闪亮应用程序中,我们需要:

以下4.4.1第1步:将绘图添加到UI

Shiny提供了一系列将R对象转换为用户界面输出的函数。每个函数创建一个特定类型的输出:

输出功能 创造
htmloutput. 原始HTML
imageOutput 图像
plotOutput 情节
TableDut. 桌子
TextOutpul. 文本
Uioutput. 原始HTML

您可以以与添加HTML元素和小部件的方式相同的方式将这些输出函数添加到用户界面。让我们使用plotOutput将MA图添加到用户界面。

#ui.r size = 450 shinyui(spertpage(titlepanel(titlepanel(“ma plot explorer”),splitlayout(cellwidths = size,plotoutput(“plotma”,width = size,height = size)))))

注意plotOutput以它的第一个参数提起字符串“plotma”。每一个*输出函数需要一个参数:闪亮将用作反应元素的名称的字符串。您的用户不会看到此名称,但您将稍后使用它。

我们已经使用过流化物再一次,但这次我们使用splitLayout将内容组织到宽度为细胞宽度。我们将单元的宽度设置为绘图的宽度和高度,以相同的值大小,我们已经设置为450像素。

4.1.2第2步:提供R代码来构建绘图

将函数放入UI.R.告诉Shiny在哪里显示你的对象。接下来,你需要告诉Shiny如何构建对象。

通过提供构建对象的R代码来做到这一点服务器。R。代码应该进入出现内部的未命名功能shinyServer在里面服务器。R脚本。未命名的功能在闪亮的过程中起着特殊作用;它构建了一个名为的列表 - 类似的对象输出每个R对象需要在列表中有自己的条目。

您可以通过定义新元素来创建一个条目输出在未命名函数中,如下所示。元素名称应该与您创建的反应性元素的名称匹配UI.R.。在下面的脚本中,输出$ plotma.火柴PlotOutput(“plotma”,宽度=尺寸,高度=大小)在你的UI.R.脚本。

#服务器。Rlibrary(DESeq2) load("data.rda") res <- results(dds) ymax <- 5 shinyServer(function(input, output) { # MA-plot output$plotma <- renderPlot({ par( mar=c(5,5,3,2), cex.main=1.5, cex.lab=1.35 ) plotMA( res, ylim=c(-ymax, ymax) ) }) })

请注意,我们已将代码加载和预处理数据呼叫前的代码shinyServer。呼吁票面价值plotma.设置一些图形参数,提高了图的美学,如三月设置页边距,或cex。*增加相应元素的文本大小。有关详细信息,请参阅?不相上下

每个进入输出应包含闪亮的输出渲染*职能。这些功能捕获了R表达,并在其上进行一些亮起预处理。使用渲染*对应于您正在制作的反应物体类型的函数。

渲染功能 创造
renderImage 图像(保存为到源文件的链接)
renderPlot 情节
renderPrint 任何打印输出
恒定 数据帧,矩阵,其他表等结构
renderText 字符串
renderUI 一个闪亮的标签对象或html

每一个渲染*函数采用单个参数:括号包围的R表达式,{}。表达式可以包含许多行代码,就好像它是一个复杂的函数调用。把这个R表达式看作是你给Shiny的一组用来存储的指令。这些指令将在你第一次启动你的应用程序时运行,并且它们将在每次你的对象需要更新时重新运行。

要做到这一点,表达式应该返回您所想到的对象(一段文本、一个图、一个数据框架等)。如果表达式没有返回一个对象,或者返回了错误的对象类型,您将得到一个错误。

4.2使用窗口小部件值的反应输出

在此阶段,当您启动应用程序时,它将显示一个静态MA图。功能plotma.有一个争论α设置阈值调整后的p值的意义级别。我们现在将通过添加一个控制此参数的滑块窗口小部件来扩展应用程序。

首先,让我们在我们的绘图输出下方添加一个滑块小组件:

# ui。R大小= 450 shinyUI(fluidPage( titlePanel("MA plot explorer"), splitLayout(cellWidths=size, plotOutput("plotma", width=size, height=size) ), splitLayout(cellWidths=size, sliderInput("alpha", "Adjusted p-value treshold", min=0, max=0.2, value=0.1, step=0.001, width=size) ) ))

滑块允许在0.001的步长范围内选择0到0.2的值,并且我们已经设定了其宽度以匹配它上方的绘图大小。

您可以通过在构建绘图时闪亮调用滑块值来使绘图反应。让我们来看看如何做到这一点。

看一下第一行代码服务器。R。您是否注意到未命名的职能提到两个参数,即输入输出?你已经看到了输出是一个类似列表的对象,用于存储在应用程序中构建R对象的指令。

输入是第二个类似列表的对象。它存储了应用程序中所有小部件的当前值。这些值将被保存在小部件的名字下UI.R.

例如,我们的应用有一个小部件“α”,其值将存储在输入$α。如果一个物体使用了输入价值。为了使MA Plot反应,替代您的服务器。R脚本包含呼叫的行plotma.以下是:

plotma(Res,Ylim = C(-ymax,Ymax),alpha =输入$ alpha)

当您准备好更新UI.R.服务器。R文件,启动闪亮的应用程序。当您移动滑块时,绘图应立即重绘。

哪些输出依赖于哪些小部件。当用户更改一个小部件时,Shiny将使用该小部件的新值重新生成依赖于该小部件的所有输出。因此,重建的对象将完全是最新的。

这就是用Shiny创建反应性的方法,通过连接输入对象输出。闪亮照顾所有其他细节。

4.3反应性

最后,我们将使MA Plot可点击允许选择一个基因,并为所选基因添加计数曲线。

我们首先将计数图添加到MA图旁边,这样UI.R.脚本匹配以下内容:

#ui.r size = 450 shinyui(sperypage(titlepanel(“ma plot explorer”),splitlayout(cellwidths = size,plotoutput(“plotma”,click =“plotma_click”,width = size,height = size),plotoutput(“plotcounts“,width = size,height = size)),splitlayout(cellwidths = size,sliderinput(”alpha“,”调整后的p值三板“,min = 0,max = 0.2,值= 0.1,步骤= 0.001,宽度=尺寸)))))

注意额外的点击对此的论点plotOutputMA Plot的功能。如果设置为值plotma_click,绘图将在单击它时向服务器发送坐标。这个值可以通过输入plotma_click美元并将包含一个命名列表xy指示鼠标位置的元素。我们将使用输入plotma_click美元坐标以解决MA图中最近的基因。

让我们回到服务器。R脚本。为了能够解决在MA图中哪个点最接近点击,我们创建t.data.scaled.包含归一化坐标中的点的对象。我们将使用该对象在欧几里德距离方面找到最近的点。

#server.r库(deseq2)加载(“data.rda”)res < - 结果(dds)ymax < -  5#该对象将用于从单击事件中找到点。数据< -  with(res,cbind(basemean,log2foldchange))数据[,2] < -  pmin(ymax,pmax,data [,2]))比例< -  c(diff(range(数据[,1])),2 * ymax)t.data.scaled < -  t(数据)/比例shinyserver(函数(输入,输出){current = restiveValues(idx = null)观察({xy = c(输入$ plotma_click $ x,输入$ plotma_click $ y)如果(!is.null(xy)){##找到最近点Sqdists的索引< -  colmeans((t.data.scaled  -  xy / scale)^ 2)当前$ idx < -其中.MIN(SQDISTS)}})#ma-plot输出$ plotma < -  renderplot({par(mar = c(5,5,5,3,2),cex.main = 1.5,cex.lab = 1.35)plotma(res,ylim = c(-ymax,ymax),alpha =输入$ alpha)#在所选点id id id id and endx = current $ idx附近(!是null(idx))点(数据[idx,1],数据[idx,2],col =“dodgerblue”,cex = 3,lwd = 3)})#Selated Gene输出$ PlotCounts < - 叶果({PAR(Mar = C(5,5,3,2),cex.main=1.5, cex.lab=1.35 ) # update only when idx changes idx = current$idx if (!is.null(idx)) plotCounts( dds, idx, intgroup=c("dex") ) }) })

除了更新renderPlot负责绘图的功能,我们闪亮的应用程序还有一些其他重要的补充。即,我们使用过reactiveValues对象和一个观察者简化应用程序。

4.3.1.反应值

无响应值包含可以随时间变化的值,其他无响应对象可以读取这些值。特别是,输入对象是A.reactiveValues对象,它看起来类似于一个列表,并包含许多单独的响应值。

当您从中读取值reactiveValues对象,调用响应式表达式接受对该值的响应式依赖,当您向其写入时,它会通知依赖于该值的任何响应式函数。

我们使用反应价值当前$ IDX.用于存储当前突出显示的基因的索引。它的值设置在观察者下面描述,两个图都依赖于它。

4.3.2观察员

观察者可以读取响应值,例如小部件输入。当原始小部件发生变化时,观察者将更新其值。观察者不返回任何值,因此只对它们的副作用有用。

上面的观察者是用来更新当前$ IDX.有价值的时候才有价值C(输入$ plotma_click $ x,输入$ plotma_click $ y)对非空值的更改,该值对应于单击绘图的用户。

4.4依赖性

如果你点击MA图会发生什么?

这将使两个图绘制renderPlot过时,即使他们不直接依赖输入plotma_click美元。Shiny将知道它们已经过时,并将重新绘制绘图,因为它将跟踪输出对象所依赖的响应值。Shiny将自动重建一个对象,如果在对象的反应/输入值渲染*功能变化。

5分享您的应用程序

闪亮的应用程序很容易分享,有几种选择可供选择。一般来说,有两种基本方法可以做到:

5.1分享作为R文件

任何与R可以运行闪亮的应用程序。他们需要一份你的副本服务器。RUI.R.文件以及应用中使用的任何补充材料(例如,万维网文件夹或任何辅助r脚本)。用户可以将这些文件放入应用程序目录中,并使用您在计算机上使用的相同命令启动应用程序,例如,使用相同的命令。Runapp.

此外,Shiny提供三个内置的命令,使其易于使用在线托管的文件:润润,runGitHub, 和流说者

5.1.1润润

润润将直接从WebLink下载并启动闪亮的应用程序。使用润润:

  • 将闪亮的应用程序的目录保存为zip文件
  • 在网页上以其自己的链接主持ZIP文件。访问链接的任何人都可以使用R从R启动应用程序:
runurl(“”)

5.1.2runGitHub

如果您没有自己的网页托管文件,则可以免费托管您的文件GitHub

GitHub是一个流行的项目托管站点,用于R开发人员,因为它不仅仅是主机文件。2021欧洲杯体育投注开户GitHub提供了许多支持协作的功能,例如问题跟踪器,Wiki和与之密切集成Git.版本控制系统。要使用GitHub,您需要注册(免费)并选择用户名。

要通过GitHub分享应用程序,请在那里创建一个项目存储库。然后存储服务器。RUI.R.存储库中的文件以及应用程序使用的任何补充文件。然后,您的用户可以通过运行来启动您的应用程序:

rungithub(“<您的用户名> / <您的存储库名称>”)

5.1.3.流说者

如果您希望在线发布文件的匿名方式,Github提供了用于共享文件的粘贴板服务gist.github.com.。您无需注册GitHub以使用此服务。即使您有GitHub帐户,GIST也可以是一种简单,快捷方式来分享闪亮的项目。

分享你的应用程序的要点:

  • 将server.r和ui.r文件复制并粘贴到GIST网页。
  • 请注意GitHub给GIST的URL。

一旦您完成了一个主题,您的用户就可以启动应用程序流说者(“”)在哪里是出现在你的Gist网址末尾的数字。

在这里作为一个作为一个要点的应用程序的一个例子。您可以使用此应用启动此应用程序

流说者(“3239667”)

5.2分享作为一个网页

所有上述方法都有相同的限制:它们要求您的用户在计算机上安装r和闪亮。然而,闪亮创造了与那些人分享产出的完美机会不是有r(并且无意得到它)。您的闪亮应用程序恰好是世界上使用最广泛的通信工具之一:网页。如果您在自己的URL上托管应用程序,则用户可以访问该应用程序(不需要担心代码)。

Rstudio提供了三种方法,可以作为网页托管闪亮的应用程序:

5.2.1shinyapps.io.

将闪亮的应用程序转换为网页的最简单方法是使用shinyapps.io,Rstudio为闪亮应用程序的托管服务。ShinyApps.IO让您将应用程序直接从您的R会话上传到Rstudio托管的服务器。

5.2.2闪亮的服务器

Shiny Server是一个闪亮的伴侣程序,它构建了一个旨在托管闪亮应用程序的Web服务器。它是免费的,开源,可从Github获得。

Shiny Server是一个服务器程序,Linux服务器可以运行一个作为网页的Shiny应用程序。要使用Shiny Server,你需要一个明确支持Ubuntu 12.04或更高版本(64位)和CentOS/RHEL 5(64位)的Linux服务器。如果您没有使用显式支持的发行版,您仍然可以通过从源代码构建Shiny Server来使用它。

您可以在多个web页面上使用相同的Shiny服务器托管多个Shiny应用程序,并且您可以在防火墙后部署这些应用程序。要查看安装和配置Shiny Server的详细说明,请访问闪亮的服务器指南

5.2.3闪亮的服务器支持

Shiny Server会将你的应用带到网络上,并满足你的所有Shiny发行需求。但是,如果你在盈利性设置中使用Shiny,你可能想给自己提供大多数付费服务器程序附带的服务器工具,比如

  • 密码验证
  • SSL支持
  • 管理员工具
  • 优先权支持
  • 和更多。

如果是,请退房闪亮的服务器支持,Rstudio的闪亮服务器的付费专业版。

6延伸光泽

有许多包提供高级功能,可以增强你的Shiny应用程序。这些包括: