R 反应对象和宽范围对象之间的编码差异

R 反应对象和宽范围对象之间的编码差异,r,shiny,R,Shiny,这个例子看起来可能很长,但其实很简单 我的问题是关于有一个反应性对象和的使用,如果你可以反应性地分配给非反应性值,你将需要在任何事情发生变化时重新评估一切,所以一切都将是反应性的如果你可以反应性地分配给非反应性值,你将需要在任何事情发生变化时重新评估一切,所以一切都是被动的 blah <- reactive({ dat <<- etcetc ) contents2 <- reactive({ datp <- data.frame(mean = c(r1, r2),

这个例子看起来可能很长,但其实很简单


我的问题是关于有一个反应性对象和
的使用,如果你可以反应性地分配给非反应性值,你将需要在任何事情发生变化时重新评估一切,所以一切都将是反应性的如果你可以反应性地分配给非反应性值,你将需要在任何事情发生变化时重新评估一切,所以一切都是被动的
blah <- reactive({
dat <<- etcetc
)
contents2 <- reactive({
datp <- data.frame(mean = c(r1, r2),
chosen = c(rep("A", length(r1)), rep("B", length(r2))))
datp
})
library(ggplot2)

ui <- navbarPage("Test",
                         tabPanel("Panel A",
                                  sidebarLayout(
                                    sidebarPanel(
                                      sliderInput("n1", "N sample 1:", 
                                                  min=2, max=30, value=3),
                                      sliderInput("n2", "N sample 2:", 
                                                  min=2, max=30, value=3),
                                      numericInput("mean1", label = h5("Mean 1"), value = 100),
                                      numericInput("mean2", label = h5("Mean 2"), value = 80),
                                      numericInput("sd1", label = h5("Std Dev 1"), value = 10),
                                      numericInput("sd2", label = h5("Std Dev 2"), value = 10),

                                      radioButtons("cilevel", "Confidence Interval",
                                                   c("99%" = 0.99, 
                                                     "95%" = 0.95,
                                                     "90%" = 0.90),
                                                   selected = 0.95)
                                    )
                                    ,
                                    mainPanel(
                                      plotOutput("plot")
                                    )
                                  )

                         ),
                         tabPanel("Panel B",
                                  sidebarLayout(
                                    sidebarPanel(
                                    )
                                    ,
                                    mainPanel(
                                    )
                                  )
                         )
)

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

  contents1 <- reactive({
    r1 <- rnorm(input$n1, input$mean1, input$sd1)
    r2 <- rnorm(input$n2, input$mean2, input$sd2)
    # Note the change to << now
    cimult <<- qt(as.numeric(input$cilevel)/2 + .5, length(r1))
    datp <<- data.frame(mean = c(r1, r2),
                        chosen = c(rep("A", length(r1)), rep("B", length(r2))))
    datci <<- data.frame(mean = c(mean(r1), mean(r2)),
                         sd = c(sd(r1), sd(r2)),
                         n = c(length(r1), length(r2)),
                         se = c(sd(r1)/sqrt(length(r1)), sd(r2)/sqrt(length(r2))),
                         chosen = c("A", "B"))
  })

  output$plot <- renderPlot({
    ggplot(datci, aes(x = factor(chosen),
                      y = mean)) +
      geom_errorbar(aes(ymin = mean - cimult * se,
                        ymax = mean + cimult * se,
                        color = factor(chosen))) + 
      geom_point(aes(color = factor(chosen)), alpha = 0.8) +
      geom_point(data = contents1(), alpha = 0.8) + 
      coord_flip()

  })
}

shinyApp(ui = ui, server = server)