整理之前在知识星球打卡汇总的 Shiny 笔记,作为速学、速查使用和分享。 基于 https://shiny.rstudio.com/tutorial/ 视频而非文字教程写的笔记。...p4:分享 Shiny 将所有脚本和材料保存到一个目录,目录下代码通常以以下 2 种方式之一存储: app.R ui.R & server.R ? ? ?...当表达式被传入该函数中,将生成响应表达式, 有趣的是,当使用一个响应表达式时,我们需要在其符号后加括号,像函数一样对待它。...p12:使用 observeEvent 进行事件触发 有时候我们需要做一些按按钮才进行分析或者绘图的触发操作,在前端我们可以使用 actionButton,在服务端我们需要使用 observeEvent...联合 tags$style() 和 HTML() 手动写 CSS;或使用 includeCSS()。 在写网页元素时单独设置 style 属性。 ? ? ? ? ? ? ? ? ? 完结拉!!!
Shiny reactive的用法与案例展示 在Shiny中,reactive()是一个函数,用于创建一个响应式变量(reactive variable)。...什么时候会用到 reactive 以下是一个简单的 Shiny 应用程序,演示了如何使用 reactive() 函数。该应用程序根据用户输入的两个数字,计算它们的和并显示结果。...当需要在 Shiny 应用程序中创建一个简单的响应式变量时,可以使用 reactiveVal() 函数。它创建的变量不需要依赖其他变量或表达式,而是直接返回一个初始值。...当用户点击添加按钮时,observeEvent() 函数会检测到该事件,并将新项目添加到项目列表中。最后,renderUI() 函数会根据项目列表,生成一个项目列表的 UI 输出。...当你需要在应用程序中共享多个响应式变量时,可以使用 reactiveValues() 函数。
相同的问题在你 Shiny 用户快速点击需要长时间运行的功能时也会出现。这些都可能会对 Shiny 造成很大的压力,而且当它处理这些挤压工作时,它无法对新的请求发出响应。最后,造成很差的用户体验。...想要知道为什么,我们先使用和上面相同的方法创建 Shiny,直接使用 simulate 为响应表达式引入依赖。...观察器 observer 目前为止,我们关注的都是在应用内部发生的事情。...这些动作都不会影响我们应用的外观,因此我们不能使用输出和 render 函数。相反,我们需要使用观察器 observer。...}) } observeEvent() 和 eventReactive() 有两点重要的区别: 我们不能将 observeEvent() 的结果赋值给一个变量 我们不能从其他响应表达式中指向它 观察器和输出非常相关
0.背景知识 在预后分析中,构建了多因素cox模型后可以选择森林图或者是诺谟图进行可视化。 之前看诺谟图,如果有一个新的病人信息,可以从诺谟图上面自行比划看该新病人的1、3、5年生存率。...这样画起来多少有点麻烦,最近埋头苦读的我发现一个人的生存率也可以做成生存曲线。...rm(list = ls()) library(shiny) library(rms) library(prodlim) library(survival) # 定义全局模拟数据和模型 simulate_data_and_model...,以便在Shiny中使用 data_and_model <- reactive(simulate_data_and_model()) ui <- fluidPage( titlePanel("病人生存曲线...mainPanel( plotOutput("survivalPlot") ) ) ) server <- function(input, output) { observeEvent
翻译:BioIT 爱好者(部分内容有调整) 原文:The top 10 R errors, the 7th one will surprise you 就像你学习走路时遇到了一些问题,你在学习 R 的过程中可能也会遇到一些错误...R 一次解释一行代码,所以当if没有关联的else代码时,要让你的代码起作用,请确保 R 知道您的指令已完成。 if ( 1 !...) { res <- input$go } shinyApp(ui, server) 您使用 Shiny 并尝试在observe(),observEvent(),reactive(),render...不应在您的 shiny 应用程序中同时使用observe()和reactive()(有时间的话我们将讨论这个问题..)..., output, session) { r <- reactiveValues(x=NULL) observeEvent( TRUE ,once = TRUE, { r$x <- input
画图其实不难,先为每种胆汁酸设置对应的颜色(我后续要拼图),然后再作图。这里代码就不 show 了,下面 shiny 的代码也会提到。 改造成 Shiny App 成品展示 这是主界面: ?...下面给大家简单讲讲我的设计思路。 设计思路 网页界面(ui.R) 因为这个网站的主要目的是作图,那么其实不难想到我们大概要分成四个板块,分别完成上传,预览数据,设置作图参数和绘图的功能。 ?...因为我想等按下按钮后再出现绘图区,所以这里使用了 uiOutput() 来生成绘图区 UI 。...),只有 Custom colors for each taxon group 选项打上勾时才会显示取色器 UI,这部分会在 server.R 中介绍) 根据不同的选项类型,选择使用不同的输入方案,比如...生成第三张图的取色板 使用了 renderUI(),只有当 Custom colors for each taxon group 选项打上勾 input$customcol 为 TRUE 时才会显示取色器
接下来的几篇文章会关注前端,探索 Shiny 提供的 HTML 输出、输出和页面布局功能。 首先依旧载入 Shiny。...根据上面的介绍,我们一般在实际使用时会忽略第一个和第二个参数名,如: sliderInput("min", "Limit (minimum)", value = 50, min = 0, max = 100...一般当数值不那么重要时使用滑块,因为滑动选择一个指定值的体验比较糟糕。...如果你里面想要用到它,不妨参考 https://github.com/rstudio/shiny-examples/blob/master/009-upload/app.R 提供的示例 Shiny App...动作按钮 该特性使用 actionButton() 或 actionLink() 实现,它一般配对后端的 observeEvent() 或 eventReactive() 使用,后续介绍。
在Seurat V4 版本中,也官方地提出了其交互平台(Shiny app):azimuth 并且内置了PBMC的参考数据集,可以在线分析和注释。...在Seurat中交互的参数一般是interactive,我们需要找到哪些函数有这个参数。思考:如何查一个R包中哪些函数有某一参数? 先载入R包和数据,并执行简单的降维。...miniUI提供了一个UI小部件,用于在R命令行中集成交互式应用程序。...除了直接在线分析也可以在自己的R中安装azimuth 包,以方便本地使用。 if (!...界面版和命令行版针对的是不同条件的选择,看自己的实验室的编程条件和人员背景来选择。但是做单细胞数据分析迟早都要会R语言。
一、简介 shiny是R中专门用于开发轻量级web应用的框架,在本地写一个shiny应用并调用非常方便,但如果你希望你的shiny应用能够以远程的方式提供给更多人来使用,就需要将写好的shiny应用部署到服务器上...,主要有两种方式,第一种是将shiny应用发布在shinyapps上,第二种是将你的shiny应用部署到自己租用的服务器上,前者比较方便但遇到一些R包环境或中文显示等问题时几乎是无解的,而后者虽然麻烦,...我使用的服务器是阿里云ECS,ubuntu 16.04,2核8G内存,40G系统盘,如果条件允许的话,建议内存不要选择过小,否则在编译安装一些R包如raster时会内存不足(当然你也可以通过swap的方式来增加虚拟内存...2.4 安装shiny和shiny server 接下来到了最重要的地方,我们来安装shiny和shiny server,首先我们在服务器上的R环境中安装shiny包: ? ...打开对应路径可以看到hello和rmd两个文件夹,每个文件夹代表一个应用,其内部拥有标准的shiny应用的ui.R和server.R,有时也会有global.R来辅助程序运行: ?
这篇文章的内容聚焦于 fluidPage() 函数,它提供了大多数应用使用的布局风格。在未来的文章中我们将讨论布局函数家族的其他成员,如仪表盘、对话框。 依旧先载入 Shiny。...接下来,我将给读者介绍 2 个通用的页面结构:带侧边栏的页面和多行页面。...多行页面结构 细心的读者可能注意到了每一行的总宽是 12,这是 Shiny 设定的,我们可以在此基础上使用不同宽度的组合。...技术实现 可能会有读者惊讶我们上面使用了一个 R 函数 theme_demo() 来创建 Shiny 的 UI。...这样可行的原因是Shiny 代码本质上就是 R 代码,读者可以使用 R 中已知的任何工具增强效率、减少重复。请谨记三的原则:当你拷贝和粘贴代码超过 3 次,就应该考虑编写一个函数或者 for 循环。
Shiny会是一个不错的选择。 ? R for data science 有不少文章在发表的最后也会附上数据探索的一个Shiny程序,方便读者再利用文章的数据。...您还可以使用CSS主题、htmlwidgets和JavaScript动作来扩展您的应用程序。...image 根据自己的喜好,我选择的是Multiple File(ui.R/server.R),主要是给人一种前端和后端分开的感觉,其实app.R也是一样的通过两个函数来分别控制,我起的名字是seuratreport...APP 如果用到一些自己写的函数可以放到www文件下,在调用的时候source进来。...我就是你们家的云平台 大家看到了吗?其实后台调用的都是Seurat的绘图函数,所以才叫做SeuratReport的嘛。其实我们可以把他写更符合我们的需求,界面不仅可以展示图片,还是显示图表。
告诉shiny如何在server函数构建对象,该对象会在它的代码构建一个小工具的值的时候反应 第一步:加一个R对象到UI shiny提供了一个函数家族,将R对象转换成在UI中的输出,每个函数创建特定类型的输出...,包含所有用来更新app中R对象的代码,每个R对象在list中要有自己的条目(名字) 在server函数中,可以通过在output定义一个新元素来创建条目,如下,元素名字应该与ui中反应元素使用的参数一致...将R表达式视为稍后于shiny的一组指令,当首次启动app时,shiny会运行这个指令,当每次需要更新对象时,shiny也会重新运行这个指令。...那应该怎么做呢 通过在构建文本时,让shiny调用小工具的值,从而实现文本反应 看一下代码发现,server函数的第一行有两个参数input和output 已知output是个列表类的对象,储存构建app...构建了第一个有灵魂的(能反应的)app 在server中使用render*函数告诉Shiny如何构筑你的对象 在每个render*函数中,用{}抱住R表达式 将render* 表达式的结果保存到output
源代码是公开的,在:https://github.com/szenitha/Shiny-Seq 所以我想着把它安装在我们自己的服务器里面,方便国内的粉丝使用!...需要安装一些R包 基本上是需要设置镜像的,参考:http://www.bio-info-trainee.com/3727.html 因为我是安装在自己的Ubuntu服务器里面,所以其实还蛮难的,各种报错...log目录是 /var/log/shiny-server 只有同属于shiny组的用户才能访问,只有在需要调试代码的时候才需要去查看 默认程序存放在:/srv/shiny-server ,我们的这个网页工具也是...,应该是操作系统迁移的问题: ls *.R|while read id;do( mv $id ${id/.R/.r});done 碰到比较麻烦的事情就重启,基本上重启能解决99%的事情。...其它类似的还有 作者也提到了一些工具:shinyngs, START, Degust, Explore DEG, DEBrowser 我也收集整理了部分其它工具:(瞧瞧告诉你,这些工具,我全部部署了,
后起之秀奔涌而至,欢迎大家在《生信技能树》的舞台分享自己的心得体会!...使用fluidPage函数创建能自动适应用户浏览器窗口的页面,通过往fluidPage中放置元素来布局用户界面。...其他面板的文字亦是如此 要添加更高级的内容,使用Shiny的HTML标签函数,这些函数对应HTML5的标签,如下对照表 3.标题 创建标题元素: 选择一个标题函数(e.g. h1 or h5) 给一段想在标题中显示的文本...,比如高和宽,注意是以像素为单位 img(src = "my_image.png", height = 72, width = 72) img函数会特定位置查找图片,文件必须在与app.R同目录下的一个叫...HTML标签的属性 通过titlePanel, sidebarPanel 或 mainPanel 给网页添加元素 用逗号分隔多个元素 www文件夹存放图片并通过img 函数使用 我的答案 library
R Shiny中的req函数和validate函数 R Shiny常常让人崩溃,特别是在弹出一般性错误提醒而程序员又一头雾水的时候。...随着Shiny的发展,越来越多的验证函数和测试函数加入了Shiny,帮助程序员更好地诊断和提醒错误。 当操作环境中没有其他变量时,req()函数可以悄无声息地阻止一个操作的发生,并且不弹出错误提醒。...如此,用R语言系统工作时,便无需在代码中输入就可以随时使用这些凭证。(注意有凭证权限的人。)...参数化R Markdown文件 当你分析了一大堆关于狗的事实并写完一个满意的R Markdown文件时,你被告知,“我还是对猫更感兴趣”。这要怎么办呢?不要担心。...它可以在R Markdown中使用,并有非常直观的HTML快捷方式,可以创建具有嵌套和逻辑结构的各种风格的漂亮幻灯片。HTML格式的演示文稿也意味着人们在听演讲时可以继续使用平板电脑或手机。
不谋而合的是,很多我之前都介绍过了。 这就是优秀者们的马太效应吗! 1-switch和case_when 在做数据分析时,常常遇到的一个场景是,1,2,3 需要转换成其对应的"a","b","c"。...这时候或许可以借助循环和switch 实现替换,教程在,[[17-R编程03-控制语句与函数]]: > sapply(tmp, function(x){ + switch(EXPR = x, +...可以使用系统变量: Sys.setenv( DSN = "database_name", UID = "User ID", PASS = "Password" ) 接着在脚本中使用这些键即可...ps:似乎shiny 的拓展分析页面模板非常多,这里我持谨慎太多。...例子:Example projects • flexdashboard (rstudio.com)[6] shiny 测试的两个好用函数:req and validate functions The req
上面是shiny团队的稿件 shiny是一个直接用R来制作交互式网页应用 (interactive web applications (apps)) 的R包 一、欢迎使用shiny 如下就是一个简单朴素的...app的结构 一个shiny app分三个部分 一个用户界面对象 用户界面(ui)对象控制app的输出和外观 一个server函数 server 函数包含让计算机构建app的指令 调用shinyApp...函数 最后,shinyApp 函数根据上面的那对ui和server创建一个shinyApp 项目 library(shiny) # 一个用户界面对象 ui <- fluidPage() # 一个服务函数...runApp和其他R中的许多函数(read.csv, read.table)一样,第一个参数的是从工作目录到app的目录的文件路径,以上代码假设my_app文件夹包含在你的工作路径,因此,只需要输入文件夹的名字...Shift+Enter) 点击灰色的向下展开小箭头还有更多惊喜哦 一个个点点看 5.回顾一下怎么创建一个app 创建一个以myapp为名的路径(文件夹) 保存app.R到myapp文件夹中 使用runApp
上面是shiny团队的稿件 l5-更复杂的反应app 创建一个更复杂的依赖R脚本和额外数据的有灵魂的(能反应的)app 使用R脚本和数据 此篇旨在展示如何载入数据,R脚本,包,用来构建app。...地区分布图使用颜色展示变量的地区差异 此例中,helpers.R 将会创建一个percent_map ,一个设计用于匹配counties.rds数据的函数,下载 脚本将会使用maps和mapproj包,...,还载入了两个包library(maps)和 library(mapproj) 使用shiny也会这样调用这些函数,但是写法略有不同 source和readRDS需要文件路径,文件路径的使用方式在shiny...中是不一样的 当shiny运行server中的函数时,会把所有文件路径的起始位置视为server.R所在的路径,换而言之,shiny app会把server.R所在的路径作为工作目录。...小小节回顾 当启动app,shinyApp 会运行一次 server函数会在每个用户访问时跑一次 render*函数中的R表达式跑很多次,shiny在用户改变小工具的值时就会运行他们 通过以上信息,思考怎么写出高效的脚本
通常情况下,我们拿到了Python代码后在运行它的过程中大概率上需要加载很多Python模块,但是对初学者的电脑来说,是接近于空白的,需要一个个模块自己安装。...一个擅长R语言的小伙伴去使用Python,如果也想如此快捷的批量安装Python的模块,就会很麻烦了。...因为我们绝大部分人都是在中国大陆地区,所以也是需要通过设置合理的镜像来加快你的模块安装速度!...requirements.txt文件里,用pip -r requirements.txt安装 ,这样的话整理不同的Python的模块和对应的版本需要花费时间但是它们就不容易出现版本冲突,一劳永逸。...如果对比R语言,其实它的批量安装R包还麻烦一点,这个技巧我在移植一些shiny应用程序就用到过: list.of.packages shiny",
依赖库版本 关键在于 kotlinx-coroutines > 1.4.x 和 lifecycle-runtime-ktx > 2.3.x API 以下示例中的Event均是随意定义的类,只是测试时为了区分事件而定义的名字...lifecycleScope.launch { lifecycle.whenStateAtLeast(minState, block) } } 切换线程 whenStateAtLeast 由于执行的block默认是在主线程...ViewModel,主要是因为有ViewModelScope,可以避免使用GlobalScope,如果想要单页面内部组件通信,那就使用ActivityScope的ViewModel就行了: object...stickyEventFlows: HashMap> = HashMap() ... } Android高级开发系统进阶笔记、最新面试复习笔记PDF,我的...GitHub 文末 对文章有何见解,或者有何技术问题,欢迎在评论区一起留言讨论!
领取专属 10元无门槛券
手把手带您无忧上云