博文

目前显示的是 九月, 2022的博文

Mastering shiny(一)基础篇

图片
 最近又要写app了,记录一下笔者认为的要点方便以后回顾,主要来自官方的 Mastering shiny 的Get started部分。PS:这本书习题答案在 这里 。 1、编写中的要点 1.1  使用响应表达式来减少代码重复 重复的代码,比如反复读取数据,会浪费算力,增加维护难度。传统的做法是单独使用一个变量来捕获input,或者使用函数来捕获计算。但是此处介绍了一个新的方法,即响应表达式—— reactive expressions 。 基本用法是用reactive({...})函数把你获取变量的代码包起来,他会在需要的时候更新。 server <- function(input, output, session) { # Create a reactive expression dataset <- reactive({ get(input$dataset, "package:datasets") }) output$summary <- renderPrint({ # Use a reactive expression by calling it like a function summary(dataset()) }) output$table <- renderTable({ dataset() }) } 1.2 中括号 如果render里有多行代码才需要加中括号。render中应该尽量减少计算。 1.3 UI和server输出的对应关系 textOutput()对应renderText()或renderPrint(),前者输出字符串,后者是R里的代码运行输出格式。 tableOutput()对应renderTable(),dataTableOutput()对应renderDataTable(),前者一般用于小的表格,后者表格可以交互。 plotOutput()对应renderPlot(),可以输出base、ggplot2和plotly等交互图。 2、前端——UI 2.1 Inputs shiny中有许多不同的输入函数可供使用,如 sliderInput() ,  selectInput() ,  textIn...

R is awsome

 https://www.sharpsightlabs.com/blog/why-i-still-love-r/ 骂matplotlib骂的太爽,It's a pain in the ass, kind of bullshit. 数据分析真的很需要可视化,以及及时方便快速的可视化,所以R是真的很方便,现在我已经形成这样的工作流了,开发软件之前先用R分析很多数据,确定好流程和参数之后,然后写成python版方便维护。 还有我特别喜欢R的数据结构(比如Rle,S4,tibble,GRanges等),当然这些可能并不是R的原创,或许是继承自其他语言,但是我在日常使用中很快地就会接触到并上手了,而且特别好用,大大提升数据分析的效率。 自认为用python也处理了很多数据写了不少应用,但是并没有机会接触到这些,应该说我没有遇到类似场景去思考数据结构,写python的时候我只是在思考如何实现某个功能,但是不可思议的是在用R的时候,我在入门没多久就已经在涉及这些了,做的事情都差不多的情况下,可能是R我不需要去思考如何实现功能,因为都有现成的函数,但是这些函数需要特定的数据结构,所以我得去学习,比如序列数据,就需要rle和range的数据结构作为输入输出。 数据整理的包R也特别的好用,还能很方便地搭一个交互平台,真的不要太棒。 Fantastic R! 我也想写个1w字小论文来论述R的好 PS:文中还提到了R的机器学习框架,有空去学一下https://www.tidymodels.org/packages/