앱 만들기

R로 Shiny 웹 애플리케이션 만들기

Kaelen Medeiros

Data Scientist

기대수명 vs 1인당 GDP 탐색

선택한 대륙과 연도에 대한 기대수명 vs 1인당 GDP의 대화형 산점도를 표시하는 앱

R로 Shiny 웹 애플리케이션 만들기

기대수명 vs 1인당 GDP 탐색

선택한 대륙과 연도에 대한 기대수명, 인구, 1인당 GDP의 대화형 표를 표시하는 앱

R로 Shiny 웹 애플리케이션 만들기

Shiny 앱 만들기: 4단계

  1. 입력 추가 (UI)
  2. 출력 추가 (UI/Server)
  3. 레이아웃 업데이트 (UI)
  4. 출력 업데이트 (Server)
R로 Shiny 웹 애플리케이션 만들기

1단계: 입력 추가 (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),

selectInput('continent', 'Select Continent', unique(gapminder$continent)),
sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5) )
server <- function(input, output, session){ } shinyApp(ui = ui, server = server)
R로 Shiny 웹 애플리케이션 만들기

대륙과 연도를 선택하는 컨트롤을 표시하는 앱

R로 Shiny 웹 애플리케이션 만들기

2단계: 출력 추가 (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),
  selectInput('continent', 'Select Continent', unique(gapminder$continent)),
  sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5),

plotOutput('plot'), DT::DTOutput('table')
)
R로 Shiny 웹 애플리케이션 만들기

2단계: 출력 추가 (Server)

server <- function(input, output, session){

output$plot <- renderPlot({ ggplot() })
output$table <- DT::renderDT({ gapminder })
}
R로 Shiny 웹 애플리케이션 만들기

대륙과 연도를 선택하는 컨트롤과 함께 빈 그래프와 대화형 표를 표시하는 앱

R로 Shiny 웹 애플리케이션 만들기

3단계: 레이아웃 업데이트 (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),

sidebarLayout(
sidebarPanel( selectInput('continent', 'Select Continent', unique(gapminder$continent)), sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5) ),
mainPanel( plotOutput('plot'), DT::DTOutput('table') )
) )
R로 Shiny 웹 애플리케이션 만들기

3단계: 레이아웃 업데이트 (UI)

ui <- fluidPage(
  titlePanel("Life Expectation vs. GDP Per Capita"),

sidebarLayout(
sidebarPanel( selectInput('continent', 'Select Continent', unique(gapminder$continent)), sliderInput('year', 'Select Year', 1952, 2007, 1990, step = 5) ),
mainPanel( tabsetPanel( tabPanel("Plot", plotOutput('plot')), tabPanel("Table", DT::DTOutput('table')) ) )
) )
R로 Shiny 웹 애플리케이션 만들기

선택한 대륙과 연도에 대한 기대수명, 인구, 1인당 GDP의 대화형 표를 표시하는 앱

R로 Shiny 웹 애플리케이션 만들기

4단계: 출력 업데이트 (Server)

server <- function(input, output, session){
  output$plot <- renderPlot({

data <- gapminder %>% filter(year == input$year) %>% filter(continent == input$continent) print(data) ggplot(data, aes(x = gdpPercap, y = lifeExp)) + geom_point()
}) output$table <- DT::renderDT({
gapminder %>% filter(year == input$year) %>% filter(continent == input$continent) })
}
R로 Shiny 웹 애플리케이션 만들기

탭에서 선택한 대륙과 연도에 대한 기대수명 vs 1인당 GDP의 대화형 산점도를 표시하는 앱

R로 Shiny 웹 애플리케이션 만들기

연습해 봅시다!

R로 Shiny 웹 애플리케이션 만들기

Preparing Video For Download...