R语言 用shiny开发网页app进行多组数据可视化

原文链接

Shiny是RStudio的一个包,它使得用R构建交互式Web应用程序变得非常容易。不需要知道任何有关Web应用程序的事情 ,就可以编写Shiny 应用程序。

然而多数Shinyapp仅是对一个结果进行可视化,通常我们在分析数据后会得到多个可视化结果,如果需要在一个app中实现展示,需要配合条件语句和复选框来实现。因此,在这里我们介绍这个实用的功能:

首先新建一个shiny项目。

打开rstudio,然后新建一个项目,选择New Directory。

R语言 用shiny开发网页app进行多组数据可视化_第1张图片

然后创建一个appliction 。

R语言 用shiny开发网页app进行多组数据可视化_第2张图片

配合条件语句,我们把多个可视化结果分别放入ouput对象的image变量,同时还可以创建一个text变量来解释这些图像,同样也是用条件语句。

应用1

随着lme4包装的进步,使用广义线性混合模型(GLMM)和线性混合模型(LMM)变得越来越容易。由于我们发现自己在工作中越来越多地使用这些模型,我们开发了一套R shiny工具来简化和加速与对象交互的lme4常见任务。

shiny的应用程序和演示

演示此应用程序功能的最简单方法是使用捆绑的Shiny应用程序,在此处启动一些指标以帮助探索模型。 

R语言 用shiny开发网页app进行多组数据可视化_第3张图片

在第一个选项卡上,该函数显示用户选择的数据的预测间隔,这些预测间隔是使用predictInterval包中的函数计算的。该函数通过从固定效应和随机效应项的模拟分布中抽样并组合这些模拟估计来快速计算预测间隔,以产生每个观察的预测分布。

R语言 用shiny开发网页app进行多组数据可视化_第4张图片

在下一个选项卡上,固定效应和组级效果的分布在置信区间图上显示。这些对于诊断非常有用,并提供了检查各种参数的相对大小的方法。这个标签使得利用四个相关的功能merTools:FEsim,plotFEsim,REsim和plotREsim它们可将自己的使用。

R语言 用shiny开发网页app进行多组数据可视化_第5张图片

在第三个标签上有一些方便的方法,通过利用的力量来显示效果的影响或程度predictInterval。对于每种情况,最多12个,在所选数据类型中,用户可以查看更改固定效果或其中一个分组级别术语的影响。使用该REimpact函数,如果所有其他情况保持相等,则使用模型的预测模拟每个案例,但是通过固定效应或随机效应项的分布来移动观察。这是在因变量的比例上绘制的,这允许用户比较变量之间的效果大小,以及相同数据之间的模型之间的效果大小。

检查对象的功能。最简单的是得到固定和随机效应参数的后验分布。

我们也可以这样绘制:


R语言 用shiny开发网页app进行多组数据可视化_第6张图片

我们还可以快速制作随机效应的图:


R语言 用shiny开发网页app进行多组数据可视化_第7张图片

有时,随机效应可能难以解释,并且并非所有这些都与零有意义地不同


head(ranks)


效果模拟

解释LMM和GLMM模型的结果仍然很困难,尤其是不同参数对预测结果的相对影响。


结果REimpact表明yhat,根据我们提供的情况newdata,在组因子系数的大小方面,从第一个到第五个五分位数的变化。


R语言 用shiny开发网页app进行多组数据可视化_第8张图片

应用2

我们编写的rshiny模板如下:

library(shiny)

library(ggplot2) # Data visualization

library(readr) # CSV file I/O, e.g. the read_csv function

library(dplyr)

library(data.table)

shinyApp(

ui=fluidPage(

titlePanel("Image output"),

fluidRow(

column(4, wellPanel(

radioButtons("picture", "Picture:",

c(1:8))

)),

column(4,

# imageOutput("image1", height = 300),

imageOutput("image2", height = 300),

textOutput("summary")

)

)

),

server<-function(input, output, session) {

# boxplot

movies <- read.csv("movie_metadata.csv", header = T)

x<- movies$content_rating

y<- movies$gross

output$image2 <- renderPlot({

if (input$picture == "1") {

boxplot(y~x,data=movies)

} else if (input$picture == "2") {

。。。(图片2)

}else if (input$picture == "3") {

。。。(图片3)

}else if (input$picture == "4") {

。。。。(图片4)

} )

output$summary <- renderText({

if (input$picture == "1") {

paste0('Pic.', input$picture ," ,this picture is about boxplot of .." )

} else if (input$picture == "2") {

注释2

}else if (input$picture == "3") {

注释3

}

。。。

})

}

)

如果shiny安装好了的话,你可以按run app按钮来预览我们的app。

可以得到如下效果,通过互动的复选框我们可以展示多个可视化结果:

R语言 用shiny开发网页app进行多组数据可视化_第9张图片
R语言 用shiny开发网页app进行多组数据可视化_第10张图片
R语言 用shiny开发网页app进行多组数据可视化_第11张图片
R语言 用shiny开发网页app进行多组数据可视化_第12张图片


 

还有很多需要学习的地方,希望今后大家可以做出更加有用的app。

原文请浏览官网


【拓端数据tecdat.cn】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。

中国专业的统计分析和数据挖掘咨询服务商:拓端数据(商务合作请联系官网客服)

帅的小伙伴都关注了拓端数据团队^..^~

QQ交流群:186388004

微信公众号:拓端数据

微信客服号:lico_9e

你可能感兴趣的:(R语言 用shiny开发网页app进行多组数据可视化)