【发布时间】:2019-09-09 04:38:48
【问题描述】:
尝试创建一个用于显示 Pert 分布的 ui.r 文件
我收到以下错误:ui.r 中的错误:缺少参数“变量”,没有默认值
我看到的常见解决方法是删除不必要的逗号,我相信我已经做到了。
server <- function(input, output){
BS = function(n, births, cat2, statusmin, statusmode, statusmax, impactmin, impactmode, impactmax){
d1 = births*cat2*rpart(n,statusmin,statusmode,statusmax)*rpart(n,impactmin,impactmode,impactmax)
return(d1)
}
output$plotCall <- renderPlot({
n = input$n
births = input$births
cat2 = input$cat2
statusmin = input$statusmin
statusmode = input$statusmode
statusmax = input$statusmax
impactmin = input$impactmin
impactmode = input$impactmode
impactmax = input$impactmax
gg <- ggplot(data.frame(BS()), aes(x = BS))
gg <- gg + geom_histogram(aes(y = ..density..),color = "black", fill = "white",
binwidth = 2 * IQR(BS) / length(BS)^(1/3))
gg <- gg + geom_density(fill = "steelblue", alpha = 1/3)
gg <- gg + scale_x_continuous(labels = comma)
gg <- gg + theme_bw()
plot(gg, labels = TRUE, conf.level = .8)
}
)
}
ui <- shinyUI(fluidPage(
titlePanel("ROI"),
sidebarLayout(
sidebarPanel(
numericInput('n', 'Number of Simulations', 1000, min = 1, max = 1000, step = 1),
numericInput('birth', 'Number of Births', 6811, min = 1, max = 10000, step = 1),
numericInput('cat2', 'Percentage of Category II Strips', 0.84, min = 0.01, max = 1, step = 0.01),
numericInput('statusmin', '% Status Min', 0.1, min = 0.01, max = 1, step = 0.01),
numericInput('statusmode', '% Status Most Likely', 0.3, min = 0.01, max = 1, step = 0.01),
numericInput('statusmax', '% Status Max', 0.4, min = 0.01, max = 1, step = 0.01),
numericInput('impactmin', '% Impact Min', 0.2, min = 0.01, max = 1, step = 0.01),
numericInput('impactmode', '% Impact Most Likely', 0.4, min = 0.01, max = 1, step = 0.01),
numericInput('impactmax', '% Impact Max', 0.64, min = 0.01, max = 1, step = 0.01)
),
mainPanel(
textOutput("BScall"),
hr(),
tabsetPanel(
tabPanel("Calls", plotOutput("plotCall",width="100%"))
)
)
)
))
shinyApp(ui = ui, server = server)
我正在尝试获取 d1 结果的直方图。
【问题讨论】:
-
我正在尝试获取 d1 结果的直方图。
-
您希望
d1代表什么?调用rpart()返回一个类rpart的对象,并且您将参数传递给rpart()的方式不是有效调用。查看documentation 以了解如何为 rpart 输入公式。它将返回一个模型对象,因此将其包含在乘法调用中将不起作用。此外,您将BS()定义为一个函数,但在您对ggplot()的调用中,您没有为您的函数BS提供任何参数,因此它将无法计算任何内容。