Rで解析:Shinyのテキスト系UIの紹介

Rの解析に役に立つ記事
スポンサーリンク

Shinyの基本的なテキスト系UIの紹介です。Shinyの導入は以下の記事を参考ください。

スポンサーリンク

テキスト系UIと表示UI

テキスト系UIにはテキストボックスの「textInput」、複数行のテキストボックス「textAreaInput」、パスワードテキストボックス「passwordInput」があります。

表示UIにはテキスト表示の「textOutput」、Rコンソール内容を表示する「verbatimTextOutput」があります。表示UIへのデータ受け渡しにはテキスト受け渡しの「renderText」、コンソール内容受け渡しの「renderPrint」コマンドをsever.Rもしくはapp.Rの「function」コマンドへ記述します。

以下の実行コマンドはRStudioのRStudio Desktop 2021.09.2+382、windows 11のR version 4.1.2で確認しています。

library("shiny")

ui <- fluidPage(
        
        #&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;
        textInput(inputId = "TextBox", "&#12363;&#12425;&#12384;&#12395;&#12356;&#12356;&#12418;&#12398;"),
        #&#35079;&#25968;&#34892;&#12398;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;, &#34920;&#31034;&#34892;&#25968;:rows&#12458;&#12503;&#12471;&#12519;&#12531;
        textAreaInput(inputId = "TextArea", "&#35079;&#25968;&#34892;&#12398;&#12486;&#12461;&#12473;&#12488;&#20837;&#21147;", rows = 3),
        #&#12497;&#12473;&#12527;&#12540;&#12489;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;
        passwordInput(inputId = "TextPass", "&#12497;&#12473;&#12527;&#12540;&#12489;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;"),
        
        #&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#34920;&#31034;
        textOutput("OutTextBox"),
        #&#35079;&#25968;&#34892;&#12398;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#34920;&#31034;
        textOutput("OutTextArea"),
        #&#12497;&#12473;&#12527;&#12540;&#12489;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#34920;&#31034;
        textOutput("OutTextPass"),
        #&#12467;&#12531;&#12477;&#12540;&#12523;&#20869;&#23481;&#12434;&#34920;&#31034;
        verbatimTextOutput("RCode")
)


server <- function(input, output) {
    #&#12486;&#12461;&#12473;&#12488;&#12398;&#12450;&#12454;&#12488;&#12503;&#12483;&#12488;
    output$OutTextBox <- renderText({
        paste0("&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#65306;[", input$TextBox, "]")
    })
    #&#35079;&#25968;&#34892;&#12398;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#12398;&#12450;&#12454;&#12488;&#12503;&#12483;&#12488;
    output$OutTextArea <- renderText({
        paste0("&#35079;&#25968;&#34892;&#12398;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#65306;[", input$TextArea, "]")
    })
    #&#12497;&#12473;&#12527;&#12540;&#12489;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#12398;&#12450;&#12454;&#12488;&#12503;&#12483;&#12488;
    output$OutTextPass <- renderText({
        paste0("&#12497;&#12473;&#12527;&#12540;&#12489;&#12486;&#12461;&#12473;&#12488;&#12508;&#12483;&#12463;&#12473;&#65306;[", input$TextPass, "]")
    })
    #&#12467;&#12531;&#12477;&#12540;&#12523;&#20869;&#23481;&#12434;&#34920;&#31034;
    output$RCode <- renderPrint({
        summary(5:15)
    })
    
}

#&#12471;&#12515;&#12452;&#12491;&#12540;&#12450;&#12503;&#12522;&#12398;&#23455;&#34892;
shinyApp(ui = ui, server = server)

実行結果


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました