You are on page 1of 7
2oingr22, 1842 Brihante - Exibe saidareativa Brilhante (/) apartiede hetpsu v) Iniciar Vtutorial”) —Galeria(/gallery/) —Artigos Varticles/) —_Histdrias de aplicativos /app-stories/) Licho 4 Exibir saida reativa Hora de dar 20 seu aplicativo Shiny uma qualidade “ao vivo"! Esta lico ensinaré como criar saida reativa para telas em seu aplicativo Shiny. A saida reativa responde automaticamente quando o usuério alterna um widget. Ao final desta ligio, vacé saberd como fazer um aplicativo Shiny simples com duas linhas de texto reativas. Cada linha exibird 0s valores de um widget com base na entrada do ususrio, p/127.0.01:3771 |) Open in tomer pan © censusVis ‘You have selected Percent White eer ‘You have chosen arange that goes fom 0 to 100, information rom the 2010 US Census, Choose a variable to display Percent White . Range of interest: a Este novo aplicativo Shiny precisard de seu préprio novo diretério, Crie uma pasta em seu diretério de trabalho chamada census-app .£ aqui que salvaremos 0 app.R arquivo que vocé criou nesta licdo. Dois passos Vocé pode criar safda reativa com um processo de duas etapas. 1.Adicione um objeto Ra sua interface de usuario. 2. Diga ao Shiny como construir 0 objeto na funcao do servidor. O objeto ser reativo se 0 cédigo que o constr chamar um valor de widget. Etapa 1: adicionar um objeto RalU Shiny fornece uma familia de fungées que transformam abjetos R em saida para sua interface de usuario. Cada fungiio, cria um tipo especifico de saida, hitpsshinystudo.com/utoriabwriten-ttoiallessondy w 2oingr22, 1842 Brihante - Exibe saidareativa Bungageleaalda (/) Crla dataTableOutput — Tabela de dados. HAMEROWAai9 Galeria gallery”) Artigos Varticles/)_Histéias de aplicativos Vapp-stries/) “imageOutput imagem plotourput enredo tableoutput tabela textoutput texto uioutput HTML bruto verbatimTextOutput texto \Vocé pode adicionar saida a interface do usudrio da mesma forma que adicionou elementos HTML e widgets. Coloque afunc3ode saidadentro sidebarPanel ou nainPanel noarquivo ui Por exemplo,o ui objeto abaixousa textOutput para adicionar uma linha de texto reativa ao painel principal do aplicativo Shiny mostrado acima. ui < Fluierage( LitlePanet (*eensusvis") , sidebarLayout( sidebarPanel( helpText("Create demographic maps with information from the 2620 US Census."), selectInput("var", Label = "Choose a variable to display", choices = ¢("Percent white” "percent Black" "Percent Hispani: "Percent Asian"), selected = "Percent Khite"), stiderInput("range", Label = "Range of interest: ", min = ©, max = 100, value = (8, 100)) » inainPanel( textoutput ("selected_var") Observe que textoutput recebe um argumento, a cadeiade caracteres "selected_var" .Cadaumadas *output fungdes requer um Unico argumento: uma string de caracteres que Shiny usar como o nome do seu elemento reativo. ‘Seus usudrios ndo verso esse nome, mas vocé o usaré mais tarde. Etapa forneca o cédigo R para construir 0 objeto. hitpsshinystudo.com/utoriabwriten-ttoiallessondy an 2oingr22, 1842 Brihante - Exibe saidareativa Gelacerumagunstgsm wi dizao Shiny onde exibir seu objeto. Em seguida, vocé precisa dizer ao Shiny como construir o objeto. Fazeniosisso fornocchddticiediget Rigi’ conser bbiitowla seArtizohifiptioles/) Historias de aplicativos /app-stories/) A server funcdo desempenha um papel especial no processo Shiny; ele cria um objeto semelhante a uma lista chamado output que contém todo 0 cédigo necessario para atualizar os objetos R em seu aplicativo. Cada objeto R precisa ter sua prépria entrada na lista. Vocé pode criar uma entrada definindo um novo elemento para output dentroda server fungdo, como abaixo, O nome do elemento deve corresponder ao nome do elemento reativo que vocé criouno arquivo ui Na server fungdo abaixo, output$selected_var corresponde textoutput ("selected_var") emseu arquivo server <= function(input, output) output$selected_var < renderText({ "You have selected this" Vocé nao precisa declarar explicitamentena server funcio pararetornar outpu serd atualizado automaticamente output por meio da seméntica da classe de referéncia. em sua ltima linha de cédigo. O R Cada entrada output deve conter a safda de uma das render funcdes do Shiny. Essas fungées capturam uma expresso Re fazem um leve pré-processamento na expresso. Use a render» fungo que corresponde ao tipo de objeto reativo que vocé esté fazendo. fungao de rend. renderDataTable — Tabeladedados -agao.cria renderImage imagens (salvos como um link para um arquive de origem) renderPlot parcelas renderPrint qualquer saida impressa renderTable quadro de dados, matriz, outras estruturas semelhantes a tabelas renderText cadeias de caracteres renderur um objeto de tag Shiny ou HTML Cada renders fungao recebe um tinico argumento: uma expresso R cercada por chaves, {} . Aexpressao pode ser uma simples linha de texto ou pode envolver muitas linhas de cédigo, como se fosse uma chamada de funcdo complicada, Pense nessa expresso R como um conjunto de instrugdes que vocé da ao Shiny para armazenar para mais tarde. O Shiny executard as instrugées quando vocé iniciar seu aplicativo pela primeira vez e, em seguida, o Shiny executard novamente as instrugdes sempre que precisar atualizar seu objeto. hitpsshinystudo.com/utoriabwriten-ttoiallessondy sit 2oingr22, 1842 Brihante - Exibe saidareativa Basa qypdaARUNCfopy.s4a expresso deve retornaro objeto que vocé tem em mente (um pedaco de texto, um grfico, tm quadro de dado étc). Vocé receberd um erro se a expressio nao retornar um objeto ou se retornar o tipo errado a8 tbfefo, (hits Usar valores de widget Se vocé executar o aplicativo coma server fungio acima, ele exibird "Vocé selecionou isso" no painel principal. No v) Iniciar Vtutorial”) —Galeria(/gallery/) —Artigos Varticles/) —_Histdrias de aplicativos /app-stories/) entanto, o texto nao sera reativo. Ele ndo mudara mesmo se vocé manipular os widgets do seu aplicativo. Vocé pode tornar o texto reativo pedindo ao Shiny para chamar um valor de widget ao construir o texto. Vejamos como fazer isso, Dé uma othada na primeira linha de cédigo na server fungéo. Vocé percebe que server fungdomenciona dois argumentos input € output ?Vocé jd viuque output éum objeto tipo lista que armazena instrucdes para construir os objetos Rem seu aplicativo. {input um segundo objeto semethante a uma lista, Ele armazena os valores atuais de todos os widgets em seu aplicativo. Esses valores serdo salvos com os nomes que vocé deu aos widgets em seu arquivo ui - Por exemplo, nosso aplicativo tem dois widgets, um nomeado "var" eoutronomeado "range" (vocé deu esses nomes aos widgets na Li¢do 3 (./lesson3/)). Os valores de "var" € "range" serdo salvos input como ‘inputsvar e input$range .Comoo widget deslizante tem dois valores (um minimo eum maximo), inputSrange conteré um vetor de comprimento dois. Shiny tornaré automaticamente um objeto reativo se o objeto usar um input valor. Por exemplo,a server funcdo abaixo cria uma linha de texto reativa chamando o valor do widget de caixa de selegio para construir o texto. server <- function(input, output) output$selected_var <~ rendertext(t paste("You have selected", input¢var) Faixas brilhantes cujas saidas dependem de quais widgets. Quando um usuario altera um widget, 0 Shiny reconstruira todas as safdas que dependem do widget, usando 0 novo valor do widget & medida que avanca. Como resultado, os objetos reconstruidos estaro completamente atualizados. E assim que vocé cria reatividade com Shiny, conectando 0s valoresde input aos objetosem output . Shiny cuida de todos os outros detalhes. Inicie seu aplicativo e veja a saida reativa Quando estiver pronto, atualize suas fungdes server € ui paracorresponder s acima. Em seguida, inicie seu aplicativo Shiny executando runapp("census-app", display.mode = showcase") na linha de comando. Seu aplicativo deve se parecer com 0 aplicativo abaixo e seu extrato deve ser atualizado instantaneamente conforme vocé altera 0 widget da caixa de selecio. hitpsshinystudo.com/utoriabwriten-ttoiallessondy air R 2oingr22, 1842 Brihante - Exibe saidareativa SFP RATTEEET E7Fe d° roteiro. Quando o Shiny reconstr6i uma saida, ele destaca o cédigo que esté sendo executado. Este realce temporério pode ajudé-lo a ver como o Shiny gera saida reativa, Sparta RRA Iniciar Vtutoria) Galeria (gallery) Artigas Varticles/)__Histérias de aplicativos /app-statiés/) consusVis oon Sua vez ‘Adicione uma segunda linha de texto reativo ao painel principal do seu aplicativo Shiny. Esta linha deve exibir "Voce escolheu um intervalo que vai de algo para algo”, e cada algo deve mostrar 0 valor minimo (min) ou maximo (max) atual do widget do controle deslizante. Nao se esqueca de atualizar seu ui objetoesua server fungio. Modelo de resposta Adicione a segunda linha de texto da mesma forma que adicionou a primeira, Use textOutput in ui paracolocara segunda linha de texto no painel principal. Use renderText in server para dizer ao Shiny como construir o texto. \Vocé precisara usar 0 mesmo nome para se referir ao texto em ambos os scripts (por exemplo, "min_max" ‘Seu texto deve usar 0 valor minimo do controle deslizante (salvo como input$range(1) )e seu valor maximo (salvo como input$range[21 } Lembre-se de que seu texto serd reativo desde que vocé conecte input valores output objetos. Shiny cria reatividade automaticamente quando reconhece essas conexées. hitpsshinystudo.com/utoriabwriten-ttoiallessondy sr 2oingr22, 1842 Brihante - Exibe saidareativa Br ¥thanter (/) apace, Fr uiapage’ (hitneybewesabeocanduevlsgy tutorial — Galeria gallery) Artigos Varticles/) —_Histérias de aplicativos V/apprstories/) sidebarLayout( sidebarPanel( helpText("Create demographic maps with information from the 2029 US Census." selectInput("var", Label = "Choose a variable to display", choices = ¢("Percent White” "Percent Black", "percent Hispanic", "Percent Asian"), selected = "Percent White") sUiderInput "range", Label = "Range of interest: in = ©, max = 180, value = ¢(e, 106)) nainPanel( textoutput("selected_var"), textoutput ("in_max server <= function(input, output) output$selected_var < rendertext({ paste("You have selected", input$var) » output$min_nax < renderText paste("You have chosen a range that goes fron", InputSrange[i], "to", inputsrange(?]) shinyApp(ui, server) Recapitular Nesta licdo, vocé criou seu primeiro aplicativo Shiny reativo. Ao longo do caminho, vocé aprendeu a ‘= useuma *output funcdono ui paracolocar objetos reativos em seu aplicativo Shiny, hitpsshinystudo.com/utoriabwriten-ttoiallessondy er 2oingr22, 1842 Brihante - Exibe saidareativa BrPERYRRLECreMY {uncdono server paradizer a0 Shiny como construir seus objetos, a fneffear expresses R por chaves, £) ,em cada renders funcdo, (repsalve suasiinenddr+lekprefedesiai) out Gutctistazdtmydima enti Partctads objetisiientive eptisaivapllaabivtndes/) —R + criar reatividade incluindo um input valor emuma render* expresséo. ‘Se vocé seguir essas regras, o Shiny automaticamente tornard seus objetos reativos. Na Ligdo 5 (/lesson5/), voc® criar um aplicativo reativo mais sofisticado que depende de scripts Re dados externos. CContinuar para a lcde 5 (./lesson5) Se voc’ tiver dividas sobre este artigo ou quiser discutir as ideias apresentadas aqui, poste na Comunidade RStudio (https://community.rstudio.com/c/shiny) . Nossos desenvolvedores monitoram esses féruns e respondem a perguntas eriodicamente. Consulte a ajuda (/help) para obter mais ajuda com todas as coisas Shiny. (hetpsyiwantiokedin © Copyright 2020 RStudi Ine (tips hitpsutgiteeiakssutio hitpsshinystudo.com/utoriabwriten-ttoiallessondy um

You might also like