시작하기무료로 시작하기

출력 객체 구성하기

Shiny에서 출력을 만들 때에는 다음 세 가지 규칙을 따릅니다:

  1. 적절한 render*() 함수로 객체를 만듭니다.

  2. 렌더 함수의 결과를 서버 함수의 매개변수인 output 리스트에 저장합니다. 구체적으로는, UI에서 ID가 outputId인 출력 자리표시자를 대체하려면 output$<outputId>에 저장합니다.

  3. 출력이 사용자에 의해 변경되는 입력 값에 의존한다면, 서버 함수의 매개변수인 input을 사용해 입력에 접근할 수 있습니다. 구체적으로 input$<inputId>는 항상 ID가 inputId인 입력 필드의 현재 값을 반환합니다.

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

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

강의 보기

연습 안내

UI 부분이 완전히 동작하는 Shiny 앱이 주어졌습니다. 여러분의 과제는 모든 출력을 구성하는 것입니다. 구체적으로는 다음을 수행하세요:

  • ID가 "cars_plot"인 플롯 출력 자리표시자에 cars 데이터셋의 플롯을 만드세요(23행).
  • "greeting" 텍스트 출력에는 이름 입력값을 사용해 "Hello NAME" 형식의 인사말을 렌더링하세요(28행).
  • "iris_table" 출력에는 숫자 입력값을 n으로 하여, iris 데이터셋의 앞부분 n행을 표로 표시하세요(33행).

실습형 인터랙티브 연습

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

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("name", "What is your name?", "Dean"),
      numericInput("num", "Number of flowers to show data for",
                   10, 1, nrow(iris))
    ),
    mainPanel(
      textOutput("greeting"),
      plotOutput("cars_plot"),
      tableOutput("iris_table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  # Create a plot of the "cars" dataset 
  output$cars_plot <- render___({
    plot(cars)
  })
  
  # Render a text greeting as "Hello "
  output$greeting <- ___({
    paste("Hello", ___)
  })
  
  # Show a table of the first n rows of the "iris" data
  ___ <- ___({
    data <- iris[1:input$num, ]
    data
  })
}

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