R 从单个数据集渲染多个打印(闪亮)
我有一个闪亮的应用程序,我上传数据集,然后操纵数据集并从中构建脉冲图。现在,我在每个renderPlot块中执行数据集操作,但在我看来,应该有另一种方法。我应该把数据集操作放在哪里,这样我只能做一次并传递到rendetPlot块中 我目前的情况示例:R 从单个数据集渲染多个打印(闪亮),r,shiny,R,Shiny,我有一个闪亮的应用程序,我上传数据集,然后操纵数据集并从中构建脉冲图。现在,我在每个renderPlot块中执行数据集操作,但在我看来,应该有另一种方法。我应该把数据集操作放在哪里,这样我只能做一次并传递到rendetPlot块中 我目前的情况示例: library(shiny) library(shinyTime) library(plotly) library(ggplot2) ui <- fluidPage( navbarPage("STAR",
library(shiny)
library(shinyTime)
library(plotly)
library(ggplot2)
ui <- fluidPage(
navbarPage("STAR",
tabPanel("PromptHits",
sidebarLayout(
sidebarPanel(
width = 2,
fileInput(inputId = "pHitsFile", label = "Upload Data File"),
actionButton("pHitsMake", "Analyze")
),
mainPanel(
h3("Prompt Hits [all]"),
plotlyOutput("pHits1", width = 500, height = 500),
plotlyOutput("pHits2", width = 500, height = 500),
h3("Prompt Hits [outliers removed]"),
plotlyOutput("pHits3", width = 500, height = 500),
plotlyOutput("pHits4", width = 500, height = 500),
plotOutput("pHits5", width = 1000),
plotOutput("pHits6", width = 1000),
plotOutput("pHits7", width = 500, height = 500),
plotOutput("pHits8", width = 500, height = 500),
plotOutput("pHits9", width = 500, height = 500),
plotOutput("pHits10", width = 500, height = 500)
)
)
)
)
)
server <- function(input, output)
{
options(shiny.maxRequestSize=30*1024^2)
output$pHits1 <- renderPlotly(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqi
}
}
)
output$pHits2 <- renderPlotly(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqo
}
}
)
output$pHits3 <- renderPlotly(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqci
}
}
)
output$pHits4 <- renderPlotly(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqco
}
}
)
output$pHits5 <- renderPlot(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqci_padrow
}
}
)
output$pHits6 <- renderPlot(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqco_padrow
}
}
)
output$pHits7 <- renderPlot(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqci_agg
}
}
)
output$pHits8 <- renderPlot(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pqco_agg
}
}
)
output$pHits9 <- renderPlot(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pfitd0
}
}
)
output$pHits10 <- renderPlot(
{
if (input$pHitsMake) {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out$pfitd1
}
}
)
}
shinyApp (ui = ui, server = server)
库(闪亮)
图书馆(shinyTime)
图书馆(绘本)
图书馆(GG2)
ui看一看。这样,您可以为绘图数据创建一个反应式表达式,该表达式仅在单击input$pHitsmake
时更新:
library(shiny)
library(shinyTime)
library(plotly)
library(ggplot2)
ui <- fluidPage(
navbarPage("STAR",
tabPanel("PromptHits",
sidebarLayout(
sidebarPanel(
width = 2,
fileInput(inputId = "pHitsFile", label = "Upload Data File"),
actionButton("pHitsMake", "Analyze")
),
mainPanel(
h3("Prompt Hits [all]"),
plotlyOutput("pHits1", width = 500, height = 500),
plotlyOutput("pHits2", width = 500, height = 500),
h3("Prompt Hits [outliers removed]"),
plotlyOutput("pHits3", width = 500, height = 500),
plotlyOutput("pHits4", width = 500, height = 500),
plotOutput("pHits5", width = 1000),
plotOutput("pHits6", width = 1000),
plotOutput("pHits7", width = 500, height = 500),
plotOutput("pHits8", width = 500, height = 500),
plotOutput("pHits9", width = 500, height = 500),
plotOutput("pHits10", width = 500, height = 500)
)
)
)
)
)
server <- function(input, output)
{
options(shiny.maxRequestSize=30*1024^2)
plot_data <- eventReactive(input$pHitsMake, {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out
})
output$pHits1 <- renderPlotly(
{
plot_data()$pqi
}
)
output$pHits2 <- renderPlotly(
{
plot_data()$pqo
}
)
output$pHits3 <- renderPlotly(
{
plot_data()$pqci
}
)
output$pHits4 <- renderPlotly(
{
plot_data()$pqco
}
)
output$pHits5 <- renderPlot(
{
plot_data()$pqci_padrow
}
)
output$pHits6 <- renderPlot(
{
plot_data()$pqco_padrow
}
)
output$pHits7 <- renderPlot(
{
plot_data()$pqci_agg
}
)
output$pHits8 <- renderPlot(
{
plot_data()$pqco_agg
}
)
output$pHits9 <- renderPlot(
{
plot_data()$pfitd0
}
)
output$pHits10 <- renderPlot(
{
plot_data()$pfitd1
}
)
}
shinyApp (ui = ui, server = server)
库(闪亮)
图书馆(shinyTime)
图书馆(绘本)
图书馆(GG2)
非常感谢你。这正是我需要的。
library(shiny)
library(shinyTime)
library(plotly)
library(ggplot2)
ui <- fluidPage(
navbarPage("STAR",
tabPanel("PromptHits",
sidebarLayout(
sidebarPanel(
width = 2,
fileInput(inputId = "pHitsFile", label = "Upload Data File"),
actionButton("pHitsMake", "Analyze")
),
mainPanel(
h3("Prompt Hits [all]"),
plotlyOutput("pHits1", width = 500, height = 500),
plotlyOutput("pHits2", width = 500, height = 500),
h3("Prompt Hits [outliers removed]"),
plotlyOutput("pHits3", width = 500, height = 500),
plotlyOutput("pHits4", width = 500, height = 500),
plotOutput("pHits5", width = 1000),
plotOutput("pHits6", width = 1000),
plotOutput("pHits7", width = 500, height = 500),
plotOutput("pHits8", width = 500, height = 500),
plotOutput("pHits9", width = 500, height = 500),
plotOutput("pHits10", width = 500, height = 500)
)
)
)
)
)
server <- function(input, output)
{
options(shiny.maxRequestSize=30*1024^2)
plot_data <- eventReactive(input$pHitsMake, {
inputData <- input$pHitsFile
d <- read.csv(inputData$datapath)
source("pHitsMaker.R")
out <- pHits(d)
out
})
output$pHits1 <- renderPlotly(
{
plot_data()$pqi
}
)
output$pHits2 <- renderPlotly(
{
plot_data()$pqo
}
)
output$pHits3 <- renderPlotly(
{
plot_data()$pqci
}
)
output$pHits4 <- renderPlotly(
{
plot_data()$pqco
}
)
output$pHits5 <- renderPlot(
{
plot_data()$pqci_padrow
}
)
output$pHits6 <- renderPlot(
{
plot_data()$pqco_padrow
}
)
output$pHits7 <- renderPlot(
{
plot_data()$pqci_agg
}
)
output$pHits8 <- renderPlot(
{
plot_data()$pqco_agg
}
)
output$pHits9 <- renderPlot(
{
plot_data()$pfitd0
}
)
output$pHits10 <- renderPlot(
{
plot_data()$pfitd1
}
)
}
shinyApp (ui = ui, server = server)