【发布时间】:2014-09-04 22:03:22
【问题描述】:
我正在尝试制作一个非常简单的闪亮应用,它可以从在线广告中为暴露组和对照组绘制销售置信区间。
这是我的代码:-
ui.R
library(shiny)
shinyUI(fluidPage(
# Application title
titlePanel("Easy Confidence Intervals for Proportions"),
# Sidebar with input for the number of trials
sidebarLayout(
sidebarPanel(
numericInput("exGrpSize", "Exposed Group Impressions", 10000),
numericInput("exGrpConv", "Exposed Group Clicks or Conversions", 100),
numericInput("contGrpSize", "Control Group Impressions", 10000),
numericInput("contGrpConv", "Control Group Clicks or Conversions", 100)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("intervalPlot")
)
)
))
server.R
library(shiny)
library(ggplot2)
# Define server logic required to draw a histogram
shinyServer(function(input, output) {
# This is some very simple code to draw confidence intervals for proportions
# wrapped in a call to renderPlot to indicate that:
# 1) It is "reactive" and therefore should re-execute automatically when inputs change
# 2) Its output type is a plot
data <- reactive({
resp1 <- input$exGrpConv
size1 <- input$exGrpSize
resp2 <- input$contGrpConv
size2 <- input$contGrpSize
rate1 <- resp1/size1
rate2 <- resp2/size2
se1 <- 1.96*sqrt((1/size1)*rate1*(1-rate1))
se2 <- 1.96*sqrt((1/size2)*rate2*(1-rate2))
dataSet <- data.frame(
respVec = c(rate1, rate2),
group = factor(c("Exposed", "Control")),
se = c(se1, se2))
})
# # Define the top and bottom of the errorbars
limits <- aes(ymax = respVec + se, ymin = respVec - se)
#
output$intervalPlot <- renderPlot({
#
p <- ggplot(dataSet, aes(colour=group, y = respVec, x = group))
p + geom_point() + geom_errorbar(limits, width=0.2, lwd=2)
})
})
但是当我运行它时,我收到以下错误:-
Error in ggplot(dataSet, aes(colour = group, y = respVec, x = group)) :
object 'dataSet' not found
如何从绘图范围内的反应代码块中获取数据集?
[我意识到这里的置信区间有点粗略,这是一个初始原型]
【问题讨论】: