由于数据中存在NA,无法在R中绘制直方图
我正在创建一个闪亮的应用程序,其中有一个下拉列表,它将值发送到服务器以创建直方图由于数据中存在NA,无法在R中绘制直方图,r,shiny,histogram,R,Shiny,Histogram,我正在创建一个闪亮的应用程序,其中有一个下拉列表,它将值发送到服务器以创建直方图 datasetInput <- reactive({ switch(input$diamonds1, "Length" = diamonds$x, "Breath" = diamonds$y, "Height" = diamonds$z, " Please Select a Type " = NULL)
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
代码如下所示
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
用户界面:
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
服务器:
datasetInput <- reactive({
switch(input$dataset,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{hist(rnorm(input$diamonds))
})
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
因此,当我从下拉列表中选择任何内容并单击“提交”按钮时,它会显示出来
Error Msg: Listening on http://127.0.0.1:6691 Warning in rnorm(input$diamonds) : NAs introduced by coercion Warning: Error in rnorm: invalid arguments Stack trace (innermost first):
100: rnorm
99: hist
98: eventReactiveHandler [#10]
78: output$hist
4: <Anonymous>
3: do.call
2: print.shiny.appobj
1: <Promise>
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
如何在创建直方图时避免NA?您的问题与NAs无关。阅读该错误消息的第二部分:rnorm中的错误:无效参数堆栈跟踪最里面的第一个
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
问题是rnorm接受一个数值参数,该参数确定从正态分布生成多少随机数。您可以使用rnorInput$diamonds调用它,其中input$diamonds返回selectInput的选定值,所有这些值都是字符串:choices=cLength、Breath、Height,请选择一种类型
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
您的代码应该是:
datasetInput <- reactive({
switch(input$diamonds,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{hist(rnorm(datasetInput()))
})
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
您需要在rnorm调用中调用datasetInput,以便获得适当的数值,而不是输入$diamonds(以字符形式返回选择)是的,实际问题在于rnorm方法。在这里,如果我们使用rnorm,它将给出相同的结果,而不考虑开关情况下的任何选择。为了得到准确的直方图,我们必须删除rnorm方法,然后调用datasetInput方法
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**
感谢@divi的帮助。您让我接近了解决方案。您应该提供完整的用户界面和服务器,以便我们重现您的错误。
datasetInput <- reactive({
switch(input$diamonds1,
"Length" = diamonds$x,
"Breath" = diamonds$y,
"Height" = diamonds$z,
" Please Select a Type " = NULL)
})
output$hist <- eventReactive(input$action,{**hist(datasetInput())**