R语言 条件打印在闪亮文档中未按预期工作

bis0qfac  于 2023-05-26  发布在  其他
关注(0)|答案(1)|浏览(123)

我想制作闪亮的文档,读者可以在不同版本的图表/表格之间进行选择。
第一个示例工作正常,但第二个示例仅在选择选项2时才工作。唯一的区别是if{}else{}与if{}if{}结构。
我希望用户选择几个图形,而不仅仅是一个或两个。

---
output: html_document
runtime: shiny
---

#```{r eruptions, echo=FALSE}
inputPanel(
  selectInput("option",
    label = "Number of bins:",
    choices = c(1, 2, 3), selected = 1
  ),
)

renderUI({
  if (input$option == 1) {
    renderPlot({
      plot(1:10)
    })
  } else {
    renderPlot({
      plot(1:10, 10:1)
    })
  }
})
#```

#```{r eruptions2, echo=FALSE}
inputPanel(
  selectInput("option2",
    label = "Number of bins:",
    choices = c(1, 2, 3), selected = 1
  ),
)

renderUI({
  if (input$option2 == 1) {
    renderPlot({
      plot(1:10)
    })
  }
  if (input$option2 == 2) {
    renderPlot({
      plot(1:10, 10:1)
    })
  }
})
ioekq8ef

ioekq8ef1#

renderUI({
  if (input$option2 == 1) {
    renderPlot({
      plot(1:10)
    })
  }
  if (input$option2 == 2) {
    renderPlot({
      plot(1:10, 10:1)
    })
  }
})

R执行花括号之间的表达式的最后一条语句。如果是input$option2 == 1,则继续读取代码,即if(input$option == 2)。由于该条件未实现,因此输出为NULL(不可见)。

> x <- if(2==3) {print(4)}
> x
NULL

清楚了吗

相关问题