Есть ли способ перечислить объекты (кадры данных, функции, аргументы (функции), входы, выходы блестящего приложения - PullRequest
0 голосов
/ 18 апреля 2020

Есть ли способ перечислить объекты (кадры данных, функции, аргументы (функции), входы, выходы блестящего приложения. В следующем приложении есть такие входы, как actionButton (), numericInput () et c, и выводит как renderText (). Есть ли способ перечислить их вместе с идентификатором (например, действие Button имеет «goButton») и т. д.

Кроме того, здесь объявлена ​​функция с именем «asd "с аргументами (3,4). Можем ли мы также перечислить эту информацию? пожалуйста, руководство

ui.R

source("fun.R")

pageWithSidebar(
  headerPanel("actionButton test"),
  sidebarPanel(
    numericInput("n", "N:", min = 0, max = 100, value = 50),
    br(),
    actionButton("goButton", "Go!"),
    p("Click the button to update the value displayed in the main panel.")
  ),
  mainPanel(
    verbatimTextOutput("nText")
  )
)

server.R

function(input, output) {

  # builds a reactive expression that only invalidates 
  # when the value of input$goButton becomes out of date 
  # (i.e., when the button is pressed)
  ntext <- eventReactive(input$goButton, {
    input$n
  })

  output$nText <- renderText({
    asd(3,4)
  })
}

fun. R

asd <- function(a,b)
{ 
c <- a + b
return(c)
}

1 Ответ

0 голосов
/ 18 апреля 2020

Вы можете использовать кнопки действий, показать, скрыть от блестящего js и verbatimtextoutput, чтобы в вашем приложении отображался код для указания c вывода. Например:

library(shiny)
library(shinyjs)

asd <- function(a,b)
{ 
  c <- a + b
  return(c)
}

ui <- pageWithSidebar(


  headerPanel("actionButton test"),
  sidebarPanel(
    numericInput("n", "N:", min = 0, max = 100, value = 50),
    br(),
    actionButton("goButton", "Go!"),
    p("Click the button to update the value displayed in the main panel.")
  ),
  mainPanel(

    useShinyjs(),

    tags$head(tags$style("

    #nText {
      color: #333;
      background-color: #f5f5f5;
      border-radius: 4px;');

    }

    pre {
        font-size: 90%;
        color: #c7254e;
        border-radius: 4px;

    }")),

    verbatimTextOutput("nText"),
    actionButton("showtextcode", "Show Code"),
    verbatimTextOutput("textoutputcode"),
    )
)

server <- function(input, output) {

  # builds a reactive expression that only invalidates 
  # when the value of input$goButton becomes out of date 
  # (i.e., when the button is pressed)

  shinyjs::hide("textoutputcode")

  ntext <- eventReactive(input$goButton, {
    input$n
  })

  output$nText <- renderText({
    asd(2,3)
  })

  output$textoutputcode <- renderText({
    "output$nText <- renderText({
        asd(2,3)
})"
  })

  observeEvent(input$showtextcode, {

    if(input$showtextcode %% 2) {
      shinyjs::show("textoutputcode")
    } else {
      shinyjs::hide("textoutputcode")
    }
  }) 


}

shinyApp(ui, server)

Результат: enter image description here

Если вы хотите показать все вашего кода для приложения, вы может создать отдельную вкладку, которая показывает полный код, помещая все в verbatimTextOutput. Однако то, что вы можете не означает, что вы должны . Например, если ваше блестящее приложение занимает 5000 строк, это немного глупо!

Было бы намного лучше просто включить ссылку на github в исходный код приложения, если пользователи заинтересованы, они могут просто перейти по ссылке. Помните, что блестящий предназначен для совместного использования интерактивного вывода, а не полного исходного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...