Rshiny基本函数(交互式web应用)

news2025/1/16 21:08:13

Rshiny基础函数

  • 引言
  • shiny包的下载
  • shinyApp的构成
  • ui的设计函数
    • HTML类比
    • img函数无法加载图片
    • 控件函数
    • ui设计的输出对象
  • server
  • 总结

引言

R语言shiny包可以帮助我们轻松的制作交互式的web应用,并且可以搭建为独立的桌面可执行程序,非常方便制作和分享,其可以使用数据分析人员展开工作汇报、报表制作等等!

shiny包的下载

> install.packages('shiny')

shinyApp的构成

shinyApp的构成:
1.用户交互式脚本-ui
2.服务器运行脚本-server

> library(shiny)
> ui <- ...

> server <- ...

> shinyApp(ui, server)

ui的设计函数

HTML类比

shiny函数作用
p段落文本
h1一级标题
h2 二级标题
h3三级标题
h4四级标题
h5五级标题
h6六级标题
a超链接
br换行
div统一风格的文本划分
span统一的样式对文本进行行内分割
pre预定义格式文本
code计算机代码块
img图片
strong加粗
em斜体
HTML直接将字符串作为HTML代码传递
> ui <- fluidPage(
+ titlePanel("My Shiny App"),
+ sidebarLayout(
+ sidebarPanel(),
+ mainPanel(
+ h1("First level title"),
+ h2("Second level title"),
+ h3("Third level title"),
+ h4("Fourth level title"),
+ h5("Fifth level title"),
+ h6("Sixth level title")
+ )
+ )
+ )
> 
> server = function(input, output){ }
> 
> shinyApp(ui, server)

在这里插入图片描述

> ui <- fluidPage(
+ titlePanel("My Shiny App"),
+ sidebarLayout(
+ sidebarPanel(),
+ mainPanel(
+ p("p creates a paragraph of text."),
+ p("A new p() command starts a new paragraph. Supply a style attribute
+ to change the format of the entire paragraph.", style = "font-family:
+ 'times'; font-si16pt"),
+ strong("strong() makes bold text."),
+ em("em() creates italicized (i.e, emphasized) text."),
+ br(),
+ code("code displays your text similar to computer code"),
+ div("div creates segments of text with a similar style. This division
+ of text is all blue because I passed the argument 'style = color:blue' to
+ div", style = "color:blue"),
+ br(),
+ p("span does the same thing as div, but it works with",
+ span("groups of words", style = "color:blue"),
+ "that appear inside a paragraph.")
+ )
+ )
+ )
> 
> server = function(input, output){ }
> 
> shinyApp(ui, server)

在这里插入图片描述

img函数无法加载图片

img函数常用用法为:img(src = ‘.png’,height = ,width = ),经过本人测试,这种方式在RGui中无法使用,所以建议大家在Rstudio中使用.

以下为img函数在Rstudio中的使用方法.

图1 第一步
图2 第二步

在图片第二步选择了根目录E:\shinyApp下建立文件夹know, 需要在know文件夹下必须添加名为www的文件夹,将需要展示的图片放入www文件夹下
在图片第二步中我们选择的是建立app.R文件,将我们需要的ui、server、shinyApp函数写入app.R文件,之后点击保存runApp选项,会提示是否保存app.R文件,点击保存即可.

根据Rstudio分析RGui报错原因,在Rstudio中其运行是:

> runApp('~/know')

成功截图:
在这里插入图片描述

控件函数

函数作用
actionButton操作选项
checkboxInput单一选择
dateInput日期输入
dateRangeInput日期范围
fileInput文件选择
helpText为其他控件增加说明
numericInput数值输入
radioButtons单选按钮
checkboxGroupInput多选按钮
selectInput提供选项的框
sliderInput平滑的点击选择框
submitButton提交按钮
textInput输入文本的字段

每项控件函数的图片展示:
在这里插入图片描述

ui设计的输出对象

在ui中增加R对象.

ui中的输出函数输出类型
dataTableOutput数据表
htmlOutput原生html
imageOutput图片输出
plotOutputR中图片输出
tableOutput表输出:小型矩阵与数据款
textOutput文本输出
uiOutput原生html
verbatimTextOutput文本输出
> ui <- fluidPage(
+         titlePanel("Hello Shiny!"),
+       sidebarLayout(
+         sidebarPanel(
+          sliderInput(inputId = "bins",
+           label = "Number of bins:",
+           min = 1,
+           max = 50,
+           value = 30)
+                    ),
+         mainPanel(
+            plotOutput('plot'))
+                    )
+ )

以上为ui设计对象的输出例子:plotOutput.

server

服务器运行脚本提供R代码支撑ui中的输出对象.
render*函数将R代码产生的对象转为ui中的输出对象.

render*对象
renderDataTable数据表
renderImage图片
renderPlotR中的plot
renderPrint需要打印的输出
renderTable小型的表:数据框、矩阵
renderText文本
renderUIHTML

总结

关于Rshiny的基本简单使用讲到这里就结束了,文中所列举的都是Rshiny开发交互式web的基本函数,大家掌握方能写出自己想要的web.
另外关于shiny有几百个函数,我不可能在一篇博客中尽数到来,但是会在以后的博客中根据自己所需来展示一些函数的使用.
最后由于本人偏好RGui,因此在一直使用其来制作自己的shinyApp,但是某些情况下极为不方便,所以在这里推荐大家使用Rstudio
谢谢大家!!!
晚安!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/557202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能(柴玉梅)第四章课后部分习题答案(仅供参考)

注释部分只是复习用&#xff0c;不是答案 第五题 注释&#xff1a;便于复习 本来想搜个类似的&#xff0c;结果发现r1这种人家都带括号&#xff01;&#xff01;&#xff01;额&#xff0c;没括号那我就从前往后算了&#xff0c;按顺序算准没错~ CF&#xff08;H&#xff09;的…

Python logging使用

目录 logging模块 logging核心组件 logger handler StreamHandler&#xff1a;把日志内容在控制台中输出 FileHandler&#xff1a;把日志内容写入到文件中 filter formatter 注意日志级别的继承问题 logger.exception 上述样例的整体代码 日志的配置文件及其模板 lo…

用Python爬取了三大相亲软件评论区,结果…

小三&#xff1a;怎么了小二&#xff1f;一副愁眉苦脸的样子。 小二&#xff1a;唉&#xff01;这不是快过年了吗&#xff0c;家里又催相亲了 ... 小三&#xff1a;现在不是流行网恋吗&#xff0c;你可以试试相亲软件呀。 小二&#xff1a;这玩意靠谱吗&#xff1f; 小三&#…

使用Gradle7.6.1 + SpringBoot3.0.2 + java17创建微服务项目(学习)

这是一个大胆的决定 这里是导航 技术栈开发工具一、创建gradle父子项目&#xff08;deity&#xff09;1.0 简单流程示意1.1、IDEA中主要图示1.1.1 项目结构图1.1.2 IDEA中 Gradle配置 1.2、deity父项目build.gradle文件1.3、deity父项目settings.gradle文件1.4、子项目build.g…

计算机底层知识

汇编语言&#xff08;机器语言&#xff09;的执行过程 汇编语言的本质&#xff1a;机器语言的助记符 其实他就是机器语言 计算机通电->CPU读取内存中程序&#xff08;电信号输入&#xff09; ->时钟发生器不断震荡通电 ->推动CPU内部一步一步执行&#xff08;执行多…

elementUI,自定义表头,多层级表头,表头合并,行内容一致的合并行

先上效果&#xff1a; 1.自定义表头&#xff1a; 通过设置 slot"header" 来自定义表头。 slot-scope"scope" 这一行千万不要因为没有再template中使用到scope&#xff0c;vscode报红而删除&#xff0c;这会导致input框不能输入任何内容&#xff01; &l…

软考网工计算题总结(一):总共27类题型,进来复习啦!

题型一&#xff1a; 1.地址编号从80000H到BFFFFH且按字节编址的内存容量为&#xff08;5&#xff09;KB,若用16KX4bit的存储芯片够成该内存&#xff0c;共需&#xff08;6&#xff09;片。 (5)A.128 B.256 C.512 D.1024 (6)A.8 B.16 C.32 D.64 【答案】B C 【解析】本题…

写一个自己的MyGPT app

chatGPT大火之后&#xff0c;国内外一众玩家撸起袖子热火朝天干了起来。 借助开源的GPT可以轻松的拥有自己的专属GPT&#xff0c;装装逼还是很好用的&#xff0c;也算赶一下chatGPT的风口。 这里使用ANYGPT&#xff0c;打造自已的GPT&#xff0c;AnyGPT API 开发者文档 语雀…

【STM32】基础知识 第十六课 窗口看门狗 WWDG 深入浅出

【STM32】基础知识 第十六课 窗口看门狗 WWDG 深入浅出 概述窗口看门狗 (WWDG)WWDG_SR 状态寄存器WWDG 配置与使用使用 WWDG 进行故障检测案例 概述 在嵌入式开发中, 可靠性和稳定性是至关重要的. 这就是为什么许多单片机, 比如 STM32, 提供了窗口看门狗 (Window Watchdog, WW…

redis 源码记录

正好最近时间富裕&#xff0c;看一看redis源码&#xff0c;简单的记录一下。也有可能说的是不全面的&#xff0c;自行斟酌&#xff0c;只能通过debug来简单的梳理本次测试流程&#xff0c;而不是全量的覆盖的所有测试用例&#xff0c;时不时更新&#xff0c;争取一天学一点点。…

基于Web的水果蔬菜销售系统的设计与实现(论文+源码)_kaic

摘 要 随着互联网经济与技术进程的不断推进&#xff0c;网上购物方式受到公众的普遍关注和欢迎。传统的樱桃线下销售模式缺陷不断暴露&#xff0c;难以满足公众不断加快的生活节奏和生活方式的需求。本文根据目前大众的实际需要&#xff0c;根据网上商城的特点、现状以及主要功…

Java 与排序算法(3):插入排序

一、插入排序 插入排序&#xff08;Insertion Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的基本思想是将待排序序列分为已排序区间和未排序区间&#xff0c;然后每次从未排序区间取出一个元素&#xff0c;将其插入到已排序区间的合适位置中&#xff0c;使得插入…

【SpringBoot】八:Web服务---WebMvcConfigurer

文章目录 1.WebMvcConfigurer简介2. 页面跳转控制器3. 数据格式化4. 拦截器4.1 一个拦截器4.2 多个拦截器 1.WebMvcConfigurer简介 WebMvcConfigurer是SpringMVC xml配置文件的JavaConfig实现方式。 2. 页面跳转控制器 创建 SpringMVC 配置类: 3. 数据格式化 Formatter&…

计算机组成原理-存储系统-主存储器(芯片)和CPU连接

目录 一、SRAM和DRAM芯片 DRAM&#xff1a;栅极电容存储信息 SRAM&#xff1a;双稳态触发器存储信息 区别​编辑 二、ROM芯片 三、主存于CPU的连接 位扩展法 字扩展法 字位同时扩展法 译码器 四、双端口RAM和多模块存储器 4.1双端口RAM 4.2多模块存储器 4.2.1单体多字…

pthread多线程: 创建最简单的线程

文章目录 1. 目的1.1 不使用 Pthread 的情况1.2 使用 Pthread 的情况1.3 使用 Pthread 的好处 2. Pthread 创建线程的 API2.1 环境2.2 pthread_create()2.3pthread_join() 3. 创建最简单的线程3.1 要点3.2 代码 4. 创建多个子线程4.1 要点4.2 代码 5. 总结 1. 目的 Pthread 提…

计算机组成原理-存储系统-基本概论及组成

目录 一、存储器的层次化结构 二、存储器分类 存储介质 存取方式 信息可改性 三、性能指标 四、主存储器基本组成 基本的的半导体元件及原理 存储芯片的基本原理 一、存储器的层次化结构 二、存储器分类 存储介质 半导体存储器(主存&#xff0c;cache)、磁表面存储器(…

基于SpringBoot的SSMP的整合案例

基于SpringBoot的SSMP的整合案例 简单介绍模块创建创建实体类导入Mybatis-plus和druid的配置文件使用junit测试查询方法MP分页查询按照条件进行查询业务层Service开发业务层Service快速开发表现层开发表现层 实现分页查询表现层消息一致性的处理查询所有书本信息添加书本删除操…

TensorFlow巨浪中的巨人:大数据领域的引领者 TensorFlow实战【上进小菜猪大数据系列】

上进小菜猪&#xff0c;沈工大软件工程专业&#xff0c;爱好敲代码&#xff0c;持续输出干货。欢迎订阅本专栏&#xff01; 大数据时代的到来带来了海量数据的处理和分析需求。在这个背景下&#xff0c;TensorFlow作为一种强大的深度学习框架&#xff0c;展现了其在大数据领域…

fastreport使用教程(fastreport报表编辑器)

除了库本身&#xff0c;FastReport.Net还包括单独的程序 – Designer和Viewer。 如您所知&#xff0c;第一个用于创建和编辑报表模板。它具有报表预览模式&#xff0c;您可以从中查看报表&#xff0c;将其导出为所需的数据格式并将其发送到打印。 Viewer用于以fpx预览格式查看报…

清华p-tuning | GPT也能做NLU?清华推出p-tuning方法解决GPT系列模型fine-tuning效果比BERT差问题

一、概述 title&#xff1a;GPT Understands, Too 论文地址&#xff1a;https://arxiv.org/abs/2103.10385 代码&#xff1a;https://github.com/THUDM/P-tuning 1.1 Motivation GPTs模型利用传统的fine-tuning技术在NLU任务上效果比较差&#xff0c;比同等量级的BERT效果…