Vamos aprender juntos a saída (4) - controles de controle

O que é brilhante? Shiny é um pacote R que permite criar facilmente aplicativos da web interativos (apps) diretamente de R. Esta série é um longo tutorial, que leva você a aprender do simples ao profundo.
insira a descrição da imagem aqui
Na última seção, apresentamos como adicionar controles no brilhante para interação humano-computador no artigo "Tutorial da série de linguagens R - vamos aprender o brilhante juntos (3)". Desta vez apresentamos como gerar a interface do controle.
A parte de saída é gerada principalmente por meio de saída, que é muito semelhante à entrada, e também é um objeto de lista nomeado de acordo com o identificador de saída. A principal diferença é que você o usa para enviar saída, não para receber entrada. Em brilhante, é errado produzirmos desta forma,
"Não é possível modificar a 'contagem' do valor reativo somente leitura". Como a parte de saída é tratada pela saída, definir input$count <- 10 fará com que a função pense que você está redefinindo a contagem.

library(shiny)
## Warning: 程辑包'shiny'是用R版本4.2.2 来建造的
ui <- fluidPage(
  numericInput("count", label = "Number of values", value = 100)
)

server <- function(input, output, session) {
    
    
  input$count <- 10  
}

shinyApp(ui, server)
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.

Aqui precisamos falar sobre a diferença e a relação entre UI e servidor. No software, existem front-end e back-end. No brilhante, a UI é considerada o front-end, e a parte do servidor é considerada o back-end. -fim. A IU é dividida em partes de entrada e saída no front-end. O front-end serve principalmente para projetar a interface, entrada e saída do software. O backend calcula e desenha o conteúdo da parte de entrada do frontend por meio do código. Após a obtenção do resultado, ele é enviado para a parte de saída do front end. Finalmente, ele é exibido no software. Eu simplesmente desenhei um mapa mental

insira a descrição da imagem aqui
Portanto, precisamos entender que devemos ser o front-end no controle das partes de entrada e saída, e o back-end apenas nos ajuda a executar cálculos, como um herói silencioso e anônimo, é nosso contêiner para carregar conteúdo. Vejamos primeiro o código a seguir. Definimos a variável de saída textOutput "greeting" na UI, ou seja, o front-end. No back-end, output$greeting define o que é saudação, que é o caractere Olá humano! Por exemplo, o front-end é como uma TV. Ele define qual canal você pressiona e qual canal transmite conteúdo, mas não se importa com o conteúdo específico do canal. O back-end é a saída do cabo de dados da TV e, claro, é a saída do servidor da estação de TV.

ui <- fluidPage(
  textOutput("greeting")
)

server <- function(input, output, session) {
    
    
  output$greeting <- renderText("Hello human!")
}

shinyApp(ui, server)

insira a descrição da imagem aqui
No exemplo anterior, podemos descobrir que o servidor (back-end) apenas define diretamente o conteúdo de saída definido pela interface do front-end e não lê o conteúdo de entrada pelo front-end. Vejamos outro exemplo. Neste exemplo , a interface do usuário front-end mostra que a variável de entrada "nome" está definida e, em seguida, a variável de saída "saudação" é definida. Vamos ver como o servidor backend lida com a saudação de entrada e saída , o que equivale a extrair a "saudação" definida, a saudação de entrada é equivalente a extrair a "saudação" definida, a entradag ree t in g é equivalente a extrair o " g ree t in g " definido , e em p u t name é equivalente a extrair o conteúdo de "name". Use renderText({ paste0("Hello", input$ name, "!")}) associa a entrada à saída.

ui <- fluidPage(
  textInput("name", "What's your name?"),
  textOutput("greeting")
)

server <- function(input, output, session) {
    
    
  output$greeting <- renderText({
    
    
    paste0("Hello ", input$name, "!")
  })
}

shinyApp(ui, server)

insira a descrição da imagem aqui
Voltando ao primeiro exemplo do início, fica muito claro que a entrada está definida aqui, mas a saída não está definida.

insira a descrição da imagem aqui
Vamos modificá-lo, adicionar uma opção de saída num e, em seguida, usar renderText para ler a opção,

ui <- fluidPage(
  numericInput("count", label = "Number of values", value = 100),
  textOutput("num")
)

server <- function(input, output, session) {
    
    
    output$num <- renderText(input$count)
}

shinyApp(ui, server)

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/dege857/article/details/132401803
Recomendado
Clasificación