파일을 입력하면 회귀분석 결과를 출력하는 간략한 shiny 앱을 만들어 보았습니다. 독립변수와 종속변수 설정과정이 다소 어려워 포스팅할 가치가 있다고 생각하여 포스팅하여 봅니다.

library(readr)
library(shiny)

# Define UI for application that draws a histogram
ui <- fluidPage(

          fileInput("file2", "회귀분석 파일 : ",
                    multiple = FALSE,
                    buttonLabel ='찾아보기...',
                    placeholder= '선택된 파일명',
                    width='100%',
                    accept = c(".csv")),
          uiOutput('select'),
          uiOutput('checkbox'),
          verbatimTextOutput('o2_1')
        )

# Define server logic required to draw a histogram
server <- function(input, output) {
    df2 <- eventReactive(input$file2,{
      read_csv(input$file2$datapath)
    })

    output$select <- renderUI({
      selectInput(inputId='select',label='종속변수 : ',
                         choices=colnames(df2()))
    })
    
    output$checkbox <- renderUI({
      checkboxGroupInput(inputId='checkbox',label='독립변수 : ',
                         choices=setdiff(colnames(df2()),input$select))
    })

    output$o2_1 <- renderPrint({
      xvar=setdiff(input$checkbox,input$select)
      if(length(xvar)>=1){
        form=as.formula(paste0(input$select,'~',paste0(xvar,collapse='+')))
        lm=lm(form, df2())
        summary(lm)
      }
    })
}

# Run the application
shinyApp(ui = ui, server = server)