Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在server.r中为主面板输出重新编码闪亮的ui.r数值?_R_Shiny_Shiny Server - Fatal编程技术网

如何在server.r中为主面板输出重新编码闪亮的ui.r数值?

如何在server.r中为主面板输出重新编码闪亮的ui.r数值?,r,shiny,shiny-server,R,Shiny,Shiny Server,我正在构建一个闪亮的应用程序,其中我有一系列数字输入,如下所示。用户可以为10个输入输入1-9之间的值。目标是生成一些图,以说明服务器。r将1-9值重新编码为1-3(即,1-3=1,4-6=2,7-9=3)。我尝试在server.r上使用各种重新编码函数,但都会导致错误:“试图将值分配给只读的reactivevalues对象”。下面是我的ui.r和server.r代码,我最终希望条形图反映重新编码的数字输入值 **ui.R code** library(shiny) shinyUI(fluid

我正在构建一个闪亮的应用程序,其中我有一系列数字输入,如下所示。用户可以为10个输入输入1-9之间的值。目标是生成一些图,以说明服务器。r将1-9值重新编码为1-3(即,1-3=1,4-6=2,7-9=3)。我尝试在server.r上使用各种重新编码函数,但都会导致错误:“试图将值分配给只读的reactivevalues对象”。下面是我的ui.r和server.r代码,我最终希望条形图反映重新编码的数字输入值

**ui.R code**

library(shiny)
shinyUI(fluidPage(
titlePanel("Short Form Web App"),  

sidebarPanel(
  numericInput("i1", label = h5("Intellectual Item 1"), min=1,max=9,value=1),
  numericInput("i3", label = h5("Intellectual Item 3"), min=1,max=9,value=1),
  numericInput("i6", label = h5("Intellectual Item 6"), min=1,max=9,value=1),
  numericInput("i9", label = h5("Intellectual Item 9"), min=1,max=9,value=1),
  numericInput("i11",label = h5("Intellectual Item 11"), min=1,max=9,value=1),    
  numericInput("a5", label = h5("Academic Item 5"), min=1,max=9,value=1),
  numericInput("a6", label = h5("Academic Item 6"), min=1,max=9,value=1),
  numericInput("a7", label = h5("Academic Item 7"), min=1,max=9,value=1),
  numericInput("a8", label = h5("Academic Item 8"), min=1,max=9,value=1),
  numericInput("a9", label = h5("Academic Item 9"), min=1,max=9,value=1)
  ),

  mainPanel(
   plotOutput("distPlot1"))))

**server.R code**

library(shiny)

shinyServer(function(input, output) {   
 output$distPlot1 <- renderPlot({
 x<- cbind(input$i1, input$i3, input$i6, input$i9, input$i11)
 bins <- seq(min(x), max(x))
 barplot(height = x,names.arg=c("Item 1", "Item 3","Item 6","Item 9","Item 11"))    
 })
 })
**ui.R代码**
图书馆(闪亮)
shinyUI(fluidPage)(
titlePanel(“短格式Web应用程序”),
侧栏面板(
数字输入(“i1”,标签=h5(“智能项目1”),最小值=1,最大值=9,值=1),
数字输入(“i3”,标签=h5(“智能项目3”),最小值=1,最大值=9,值=1),
数字输入(“i6”,标签=h5(“智能项目6”),最小值=1,最大值=9,值=1),
数字输入(“i9”,标签=h5(“智能项目9”),最小值=1,最大值=9,值=1),
数字输入(“i11”,标签=h5(“智能项目11”),最小值=1,最大值=9,值=1),
数值输入(“a5”,标签=h5(“学术项目5”),最小值=1,最大值=9,数值=1),
数值输入(“a6”,标签=h5(“学术项目6”),最小值=1,最大值=9,数值=1),
数值输入(“a7”,标签=h5(“学术项目7”),最小值=1,最大值=9,数值=1),
数值输入(“a8”,标签=h5(“学术项目8”),最小值=1,最大值=9,数值=1),
数值输入(“a9”,标签=h5(“学术项目9”),最小值=1,最大值=9,值=1)
),
主面板(
绘图输出(“distPlot1”))
**服务器.R代码**
图书馆(闪亮)
shinyServer(函数(输入、输出){

输出$distPlot1我建议修改
shinyServer中的函数,如下所示:

shinyServer(function(input, output) {
    output$distPlot1 <- renderPlot({
        x <- cbind(input$i1, input$i3, input$i6, input$i9, input$i11)
        x <- apply(x, 2, function(x) ifelse(x<4,1, ifelse(x>6,3,2)))
        bins <- seq(min(x), max(x))
        barplot(height = x, names.arg = c("Item 1", "Item 3", "Item 6",
            "Item 9", "Item 11"))
    })
})
shinyServer(功能(输入、输出){

output$distPlot1感谢您的回复,@MarcoSandri!我在您的代码中看到的是我能够从上面发布的代码中生成的内容。我希望编辑的地方是找到一种生成server.R编辑的方法,允许对ui.R中的数字输入进行重排序。例如,第1项我想按照input$i1[input$i1>=7]的思路做一些事情是的,行得通。谢谢!