시작하기무료로 시작하기

앱에 구조 추가하기

Shiny에서 레이아웃은 요소들을 원하는 위치에 배치해 앱에 구조를 부여하는 데 사용돼요.

sidebarLayout() 함수로 만드는 사이드바 레이아웃은 왼쪽의 작은 사이드바와 오른쪽의 큰 메인 패널로 이루어진 기본적인 두 열 구조를 제공합니다.

사이드바 레이아웃 함수는 두 가지 인수를 받습니다: sidebarPanel()mainPanel(). 각 패널에는 텍스트/HTML 요소를 임의로 섞어 넣을 수 있으며, 이는 fluidPage() 안에서 이러한 요소들을 섞어 사용하는 방식과 유사해요.

이 연습은 강의의 일부입니다

사례 연구: R의 Shiny로 웹 애플리케이션 만들기

강의 보기

연습 안내

지금 있는 앱에 사이드바 레이아웃을 추가해, 입력은 왼쪽에, 결과물은 메인 패널에 오도록 만드세요. 구체적으로는 다음을 수행합니다.

  • Shiny 애플리케이션의 UI를 정의하세요.
  • 페이지에 사이드바 레이아웃을 추가하세요.
  • 레이아웃에 사이드바 패널을 추가하고, 그 안에 입력과 텍스트를 배치하세요.
  • 레이아웃에 메인 패널을 추가하고, 그 안에 플롯과 테이블을 배치하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- ___(
  # Add a sidebar layout to the application
  ___(
    # Add a sidebar panel around the text and inputs
    ___(
      h4("Plot parameters"),
      textInput("title", "Plot title", "Car speed vs distance to stop"),
      numericInput("num", "Number of cars to show", 30, 1, nrow(cars)),
      sliderInput("size", "Point size", 1, 5, 2, 0.5)
    ),
    # Add a main panel around the plot and table
    ___(
      plotOutput("plot"),
      tableOutput("table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    plot(cars[1:input$num, ], main = input$title, cex = input$size)
  })
  output$table <- renderTable({
    cars[1:input$num, ]
  })
}

# Run the application
shinyApp(ui = ui, server = server)
코드 편집 및 실행