gpt4 book ai didi

R Shiny : run code if req not satisfied (equivalent to "req else"? )

转载 作者:行者123 更新时间:2023-12-05 04:53:59 36 4
gpt4 key购买 nike

在 Shiny 的应用程序中,我使用 req 检查输入的有效性如果输入的要求为 TRUE(即不为空、不为 FALSE 等),则更新输出。

如果 req 我想运行一些代码是 FALSE,即使用 req() else {} -样结构。

我可以使用 if() {} else {}条件结构,但是 req测试了很多我宁愿避免自己实现的事情。

这是一个 MWE:

  • 如果输入text_in有效,无功值 local$text已更新。
  • 然后将 react 值的内容打印到输出 text_out .
  • 当输入text_in无效,我想执行一些代码,例如local$text <- "no text"

注意:我可以运行 local$text <- "no text"在使用 req 之前但是我正在开发的应用程序(不是这个例子)使用多个 req在调用这些 req 之前我无法定义“默认”值.

library(shiny)

ui <- fluidPage(
textInput("text_in", label = "write", value = "default"),
verbatimTextOutput("text_out", placeholder = TRUE)
)

server <- function(input, output) {

local <- reactiveValues(text = NULL)

observe({
req(input$text_in)
local$text <- input$text_in
# else {
# local$text <- "no text"
# }

})

output$text_out <- renderText({
local$text
})
}
shinyApp(ui = ui, server = server)

解决方案@mr-putter提出使用 shiny::isTruthy :

observe({
if(isTruthy(input$text_in)) {
local$text <- input$text_in
} else {
local$text <- "no text"
}
})

最佳答案

req 返回“传入的第一个值”。所以,你应该能够做这样的事情:

observe({
if(isTruthy(input$text_in))
local$text <- input$text_in
else {
local$text <- "no text"
}
})

关于R Shiny : run code if req not satisfied (equivalent to "req else"? ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65904661/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com