小编Edu*_*gel的帖子

R Shiny:reactiveValues vs reactive

这个问题关系到这一个.这两者可以生成相同的功能,但实现略有不同.一个显着的区别是a reactiveValue是一个可以有多个值的容器,比如input$.在闪亮的文档中,功能通常使用reactive(),但在大多数情况下我觉得reactiveValues()更方便.这里有捕获吗?我可能没有注意到这两者之间是否存在其他重大差异?这两个代码片段是否相同?

查看 使用以下实现的相同示例代码:

  1. 反应性表达:

    library(shiny)
    
    ui <- fluidPage( 
      shiny::numericInput(inputId = 'n',label = 'n',value = 2),
      shiny::textOutput('nthValue'),
      shiny::textOutput('nthValueInv')   
    )
    
    fib <- function(n) ifelse(n<3, 1, fib(n-1)+fib(n-2))
    
    server<-shinyServer(function(input, output, session) {   
      currentFib         <- reactive({ fib(as.numeric(input$n)) })  
      output$nthValue    <- renderText({ currentFib() })
      output$nthValueInv <- renderText({ 1 / currentFib() })   
    })
    
    shinyApp(ui = ui, server = server)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 反应值:

    library(shiny)
    
    ui <- fluidPage( 
      shiny::numericInput(inputId = 'n',label = 'n',value = 2),
      shiny::textOutput('nthValue'),
      shiny::textOutput('nthValueInv') …
    Run Code Online (Sandbox Code Playgroud)

r shiny

49
推荐指数
2
解决办法
2万
查看次数

shinydashboard不适用于uiOutput

我在server.R中设置了UI以获得更多控制权,但在server.R中定义时,shinyDashboard不起作用.我使用navBarPage这个方法没有问题.

这段代码有效

library(shiny)     
library(shinydashboard)

ui     <- dashboardPage(  dashboardHeader( ), 
                          dashboardSidebar(),
                          dashboardBody()   )

server <- shinyServer(function(input, output) {   })
runApp(list(ui= ui, server = server))
Run Code Online (Sandbox Code Playgroud)

但这个只是显示一个空页

ui     <-  uiOutput('dash')
server <- shinyServer(function(input, output) { 
  output$dash <- renderUI({   
    dashboardPage(dashboardHeader( ), 
                  dashboardSidebar(),
                  dashboardBody()  )
  }) 
})
runApp(list(ui= ui, server = server))
Run Code Online (Sandbox Code Playgroud)

这是一个使用navBarPage的例子,工作正常

ui     <-  uiOutput('nav')
server <- shinyServer(function(input, output) { 
  output$nav <- renderUI({   
    navbarPage("App Title",  
               tabPanel("Tab 1"),    
               tabPanel("Tab 2")  ) 
  })
})  
runApp(list(ui= ui, server = server))
Run Code Online (Sandbox Code Playgroud)

r shiny

6
推荐指数
1
解决办法
2001
查看次数

闪亮的renderUI selectInput返回NULL

我正在尝试使用反应性模型,其中一个输入影响多个输出,如备忘单所述。我需要使用renderUI,因为选择列表是动态呈现的(示例中未显示)。但是,在初始化期间,selectInput返回NULL而不是默认值。在第一个NULL值之后,输入将按预期工作。我是新手,可能做错了什么。

更新:其他控件意外地不仅返回NULL,而且在初始化后还返回NA。

请参见下面的代码。请参阅控制台输出,第一个输入返回NULL。

Listening on http://127.0.0.1:6211
 NULL
 chr "1"
 chr "2"
 chr "1"




library(shiny)

runApp(list(

  ui = bootstrapPage(
    fluidPage( uiOutput('ui.A')   )
  ),


  server = function(input, output){

    output$ui.A = renderUI({
      selectInput("A", label = h4("input A"), 
                  choices = list(A_1=1, A_2=2), 
                  selected = 1)
    })

    A.r <- reactive({input$A })

    observe({ 

      A <- A.r()
      str(A)

    })

  }))
Run Code Online (Sandbox Code Playgroud)

r shiny

5
推荐指数
2
解决办法
2789
查看次数

如何从包含 htmlwidget 的 rmarkdown 文件生成 md 文件

我正在用这个 rmd 创建一个 html 文件

---
title: "test"
author: "me"
date: '`r Sys.Date()`'
output: html_document 
---

```{r}
data(HairEyeColor)
rpivotTable::rpivotTable(data = HairEyeColor
            , rows = "Hair"
            ,cols="Eye"
            , vals = "Freq"
            , aggregatorName = "Sum"
            , rendererName = "Table"
            , width="100%"
            , height="400px")  
```
Run Code Online (Sandbox Code Playgroud)

rmarkdown::render(  input = 'file.RMD' , output_file = 'file.html'
                    , output_format=   html_document(  self_contained=TRUE), clean = FALSE
                    , quiet = FALSE   ) 
Run Code Online (Sandbox Code Playgroud)

输出没问题,但我需要 Markdown 文件 (file.md) 稍后重新创建 html 文件(无法访问数据)

rmarkdown 生成两个 md 文件 [file.knit.md] 和 [file.utf8.md] 但是当我渲染这两个文件中的任何一个时,file.html 中缺少 …

r r-markdown htmlwidgets

5
推荐指数
1
解决办法
3856
查看次数

闪亮的selectInput不会取消选择所有元素

如何观察取消选择selectInputin中的所有元素shiny

例如

library(shiny)

ui=shinyUI(fluidPage(
  selectInput("select","",choices = c(1,2),multiple = T)
  ))

server=function(input, output,session) {
  observeEvent(input$select,{
    print(input$select)
  })

}

shinyApp(ui,server)
Run Code Online (Sandbox Code Playgroud)

动作:

1)选择1

2)选择2

3)取消选择2

4)取消选择1

控制台日志:

[1] "1"
[1] "1" "2"
[1] "1"
Run Code Online (Sandbox Code Playgroud)

因此,取消所有选择时将没有打印。

这是错误还是我以错误的方式做某事?

r shiny

4
推荐指数
1
解决办法
751
查看次数

标签 统计

r ×5

shiny ×4

htmlwidgets ×1

r-markdown ×1