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)