当前位置: 首页 > news >正文

一起来学shiny把(4)—调控控件进行输出

什么是shiny?Shiny是一个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这个就相当于提取了定义的"greeting",input greeting这个就相当于提取了定义的"greeting"inputname这里等于提取了”name”这里的内容,用过renderText({ paste0(“Hello”, input$name, “!”)})把输入和输出进行了关联。

ui <- fluidPage(textInput("name", "What's 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)

在这里插入图片描述

相关文章:

一起来学shiny把(4)—调控控件进行输出

什么是shiny&#xff1f;Shiny是一个R包&#xff0c;可让您轻松地直接从 R 构建交互式 Web 应用程序&#xff08;应用程序&#xff09;。本系列是个长教程&#xff0c;带你由浅入深学习shiny。 上一节我们在文章《R语言系列教程—–一起来学shiny吧&#xff08;3&#xff09;》…...

VBIC卡管理系统设计与实现

摘要 IC卡管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 MICROSOFT公司的 …...

八种架构演进

日升时奋斗&#xff0c;日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征&#xff1a;应用服务和数据库服务器公用一台服务…...

商城-学习整理-高级-分布式事务(十九)

目录 一、本地事务1、事务的基本性质2、事务的隔离级别3、事务的传播行为4、SpringBoot 事务关键点 二、分布式事务1、为什么有分布式事务2、CAP 定理与 BASE 理论1、CAP 定理2、面临的问题3、BASE 理论4、强一致性、弱一致性、最终一致性 3、分布式事务几种方案1&#xff09;、…...

Java学习笔记(三):面向对象

文章目录 1.类与对象1.1 定义构造器1.2 定义成员变量1.3 定义方法1.4 static关键字 2. 面向对象的三大特征&#xff1a;封装、继承和多态2.1 封装2.2 继承2.2.1 子类重写父类的方法 2.3 多态 1.类与对象 类&#xff08;class&#xff09;和对象(object, 也被称为实例 instance…...

电商项目part02 电商后台多数据源

电商后台项目需要访问的数据源 多数据源方法&#xff08;读写分离&#xff09; 方法1&#xff1a;jdk自带的dynamicdatasource 方法2&#xff1a;Mybatis 方式 方法3&#xff1a;dynamicdatasource框架 <!--Druid连接池--><dependency><groupId>com.aliba…...

【C# 基础精讲】LINQ 基础

LINQ&#xff08;Language Integrated Query&#xff09;是一项强大的C#语言特性&#xff0c;它使数据查询和操作变得更加简洁、灵活和可读性强。通过使用LINQ&#xff0c;您可以使用类似SQL的语法来查询各种数据源&#xff0c;如集合、数组、数据库等。本文将介绍LINQ的基础概…...

ChatGPT成为工作工具,具体都应用在哪些地方?

Verified Market Research估计&#xff0c;到2030年&#xff0c;人工智能写作辅助软件市场将达到约65亿美元&#xff0c;复合年增长率为27%。生成式人工智能的浪潮正在席卷世界各地的营销部门。 Botco对美国1000名工作人员进行的调查发现&#xff0c;73%的人表示他们会利用生成…...

Shader学习(三)(片元着色器)

1、在片元着色器处理漫反射 // Upgrade NOTE: replaced _World2Object with unity_WorldToObjectShader "Custom/specularfragement" {properties{_sp("Specular",color) (1,1,1,1)_shiness("Shiness",range(1,64)) 8}SubShader{pass {tags{&…...

谷歌推出首款量子弹性 FIDO2 安全密钥

谷歌在本周二宣布推出首个量子弹性 FIDO2 安全密钥&#xff0c;作为其 OpenSK 安全密钥计划的一部分。 Elie Bursztein和Fabian Kaczmarczyck表示&#xff1a;这一开源硬件优化的实现采用了一种新颖的ECC/Dilithium混合签名模式&#xff0c;它结合了ECC抵御标准攻击的安全性和…...

前端常用的三种加密方式(MD5、base64、sha.js)

作为一名优秀的前端开发工程狮&#xff0c;保障用户的信息安全、密码义不容辞&#xff0c;废话不多说&#xff0c;由我来介绍三种日常开发中经常用到的加密方式。 一、MD5加密 介绍&#xff1a; MD5中文含义为信息-摘要算法5&#xff0c;就是一种信息摘要加密算法&#xff0c…...

alpine镜像时区设置

alpine镜像是一个完整的操作系统镜像&#xff0c;因为其小巧、功能完备的特点&#xff0c;非常适合作为容器的基础镜像。 如ubuntu、centos镜像动辄几百M的体积下&#xff0c;只有5M的alpine简直是一股清流。 当然alpine在维持体积小的情况下&#xff0c;必然牺牲一些东西。比…...

Java导入Excel,保留日期格式为文本格式

Java 读取Excel文件&#xff0c;防止日期格式变为数字 import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*;import java.io.FileInputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date;public cla…...

uploadifive php上传进度条插件 解决动态传参数问题

uploadifive默认只能在加载时,静态传递参数.如果想让用户输入参数.再动态读取.传到后端,是没有直接的办法的 效果图 但我们可以通过settings.formData 来修改配置的方式传参数,完整演示 <form id"file_form{$v.id}" style"display:none"><hr/>…...

Lombok生成的Getter和Setter的名称对于“eMail”或“xAxis”等属性存在大小写转换异常

问题 最新开发中&#xff0c;遇到一个字段映射问题。我们先看问题案例&#xff1a; 明明代码中第二个字母是大写&#xff0c;结果测试接口时发现变成了小写字母。 分析 通过网上查询发现&#xff0c;这属于Lombok的bug。而且早在2015年就有人在GitHub上提出了issues。 Names o…...

Redis基础概念和数据类型详解

目录 1.什么是Redis&#xff1f; 2.为什么要使用Redis&#xff1f; 3.Redis为什么这么快&#xff1f; 4.Redis的使用场景有哪些&#xff1f; 5.Redis的基本数据类型 5.1 5种基础数据类型 5.1.1 String字符串 5.1.2 List列表 5.1.3 Set集合 5.1.4 Hash散列 5.1.5 Zset有序集…...

C语言之extern “C“详解与使用方法

前言 在你工作过的系统里&#xff0c;不知能否看到类似下面的代码。 这好像没有什么问题&#xff0c;你应该还会想&#xff1a;“嗯⋯是啊&#xff0c;我们的代码都是这样写的&#xff0c;从来没有因此碰到过什么麻烦啊&#xff5e;”。 你说的没错&#xff0c;如果你的头文件…...

C++中的运算符总结(4):逻辑运算符(下)

C中的运算符总结&#xff08;4&#xff09;&#xff1a;逻辑运算符&#xff08;下&#xff09; 以下程序演示了如何使用条件语句和逻辑运算符根据变量的值执行不同的代码行&#xff1a; #include <iostream> using namespace std;int main() {cout << "Use …...

CloudQuery实战 | 谁说没有一款一体化数据库操作管控云平台了?

文章目录 CloudQuery询盾的地址CloudQuery主页统一入口数据库归纳SQL编辑器权限管控审计中心数据保护数据变更 CloudQuery文档中心了解CloudQuery快速入门安装步骤社区版v2.1.0操作手册1数据查询更新日志 CloudQuery社区和活动 CloudQuery线上实战线上实战主页面展示及数据操作…...

如何编写一个通用的函数?

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 金句分享:…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...

2.2.2 ASPICE的需求分析

ASPICE的需求分析是汽车软件开发过程中至关重要的一环&#xff0c;它涉及到对需求进行详细分析、验证和确认&#xff0c;以确保软件产品能够满足客户和用户的需求。在ASPICE中&#xff0c;需求分析的关键步骤包括&#xff1a; 需求细化&#xff1a;将从需求收集阶段获得的高层需…...