商机互联网站建设,深圳网站建设服务中心,亚马逊品牌备案网站怎么做,企业单位网站建设内容需要什么什么是shiny#xff1f;Shiny是一个R包#xff0c;可让您轻松地直接从 R 构建交互式 Web 应用程序#xff08;应用程序#xff09;。本系列是个长教程#xff0c;带你由浅入深学习shiny。 上一节我们在文章《R语言系列教程—–一起来学shiny吧#xff08;3#xff09;》…什么是shinyShiny是一个R包可让您轻松地直接从 R 构建交互式 Web 应用程序应用程序。本系列是个长教程带你由浅入深学习shiny。 上一节我们在文章《R语言系列教程—–一起来学shiny吧3》中介绍怎么在shiny中添加控件进行人机交互。这回我们介绍一下怎么对控件进行界面输出。 输出部分主要是通过output进行输出output 很类似于input 它也是一个根据输出标识命名的列表类对象。主要的区别是,您使用它来发送输出,而不是接收输入。shiny中我们这样输出是错误的 ” Can’t modify read-only reactive value ‘count’“。因为输出这部分由output处理定义input$count - 10 会让函数以为你要重新定义count。
library(shiny)
## Warning: 程辑包shiny是用R版本4.2.2 来建造的
ui - fluidPage(numericInput(count, label Number of values, value 100)
)server - function(input, output, session) {input$count - 10
}shinyApp(ui, server)
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.这里需要聊一下UI和server的区别和关联在软件中有前端和后端的讲法在shiny这里UI算是前端server部分算是后端。UI在这里前端有分输入和输出部分。前端主要是设计软件的界面输入和输出。后端对前端的输入部的内容通过代码进行运算绘图。得出结果后然后在发给前端的输出部分。最后显示到软件上面。我简单画了个思维导图 因此我们需要明白我们在控制输入和输出部分都应该是前端后端只是帮我们运行计算就像一个默默的无名英雄它是我们装载内容的容器。 我们先来看下面这段代码我们在UI也就是前端定义了textOutput输出”greeting”这个变量后端中output$greeting 是定义了greeting 是什么是Hello human!这个字符。比喻一下前端就像个电视它定义你按了哪个频道哪个频道输出内容但是频道具体内容它不管由后端也就是电视数据线输出当然也就是电视台服务器输出。
ui - fluidPage(textOutput(greeting)
)server - function(input, output, session) {output$greeting - renderText(Hello human!)
}shinyApp(ui, server)在上个例子中我们可以发现server 后端只是对前端UI定义的输出的内容直接定义了并没有读取前端输入的内容下面我们再来看一个例子,在这个例子中前端UI显示定义了”name”这个输入变量然后又定义了”greeting”这个输出变量。我们来看下后端server 是怎么处理这个输入和输出的output g r e e t i n g 这个就相当于提取了定义的 g r e e t i n g i n p u t greeting这个就相当于提取了定义的greetinginput greeting这个就相当于提取了定义的greetinginputname这里等于提取了”name”这里的内容用过renderText({ paste0(“Hello”, input$name, “!”)})把输入和输出进行了关联。
ui - fluidPage(textInput(name, Whats your name?),textOutput(greeting)
)server - function(input, output, session) {output$greeting - renderText({paste0(Hello , input$name, !)})
}shinyApp(ui, server)回到开头的第一个例子这就很清楚啦这里定义了输入没有定义输出 我们对它修改一下增加一个输出选项num然后使用renderText读入选项
ui - fluidPage(numericInput(count, label Number of values, value 100),textOutput(num)
)server - function(input, output, session) {output$num - renderText(input$count)
}shinyApp(ui, server)