출력 객체 구성하기
Shiny에서 출력을 만들 때에는 다음 세 가지 규칙을 따릅니다:
적절한
render*()함수로 객체를 만듭니다.렌더 함수의 결과를 서버 함수의 매개변수인
output리스트에 저장합니다. 구체적으로는, UI에서 ID가outputId인 출력 자리표시자를 대체하려면output$<outputId>에 저장합니다.출력이 사용자에 의해 변경되는 입력 값에 의존한다면, 서버 함수의 매개변수인
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)