shinydashboard로 대시보드 만들기
Png Kee Seng
Researcher
각 출력마다 함수 2개를 호출합니다
<type>output(<identifying label>, ...)
두 번째 코드는 server 함수 내에 정의합니다
output$<identifying label> <- render<type>(...)
library(tidyverse)
sleep <- read_csv("../data/Time Americans Spend Sleeping.csv")
$ index : num [1:945] 0 1 2 3 4 ...
$ Year : num [1:945] 2003 2004 2005 2006 2007 ...
$ Period : chr [1:945] "Annual" "Annual" "Annual" "Annual" ...
$ Avg hrs per day sleeping: num [1:945] 8.57 8.55 8.62 8.63 ...
$ Standard Error : num [1:945] 0.018 0.026 0.023 0.024 ...
$ Type of Days : chr [1:945] "All days" "All days" "All days" ...
$ Age Group : chr [1:945] "15 years and over" "15 years and over" ...
$ Activity : chr [1:945] "Sleeping" "Sleeping" "Sleeping" ...
$ Sex : chr [1:945] "Both" "Both" "Both" ...
textOutput을 배치합니다ui <- fluidPage(
titlePanel("Sleeping habits in America"),
textOutput("textlabel"))
server <- function(input, output) {
}
shinyApp(ui, server)
renderText를 배치합니다output$ 표기법이 필요합니다ui <- fluidPage( titlePanel("Sleeping habits in America"), textOutput("textlabel"))server <- function(input, output) { output$textlabel <- renderText("Sleep deprivation is a serious health issue in many major cities around the world.") }shinyApp(ui, server)

input$로 입력을 참조해야 합니다input$<type>
ui <- fluidPage( titlePanel("Sleeping habits in America"),textInput("textlabel", "Tell me your name", value = "", placeholder = "Don"),textOutput("textoutlabel")) server <- function(input, output) { output$textoutlabel <- renderText(paste0("Hello ",input$textlabel,"Sleep deprivation is a serious health issue in many major cities around the world.")) } shinyApp(ui, server)

plotOutput()을 배치합니다ui <- fluidPage( titlePanel("Sleeping habits in America"),plotOutput("plotlabel"))server <- function(input, output) { } shinyApp(ui, server)
server()에 renderPlot()을 배치해야 합니다ui <- fluidPage( titlePanel("Sleeping habits in America"), plotOutput("plotlabel")) server <- function(input, output) {output$plotlabel <- renderPlot({ ggplot(sleep) + geom_histogram(aes(x = `Avg hrs per day sleeping`)) })} shinyApp(ui, server)

ui <- fluidPage(
titlePanel("Sleeping habits in America"),
selectInput("selectlabel",
"Select an option",
choices = c("Histogram", "Boxplot")),
plotOutput("plotlabel"))
server <- function(input, output) { output$plotlabel <- renderPlot({ if (input$selectlabel == "Histogram"){ggplot(sleep) + geom_histogram(aes(x = `Avg hrs per day sleeping`))} else if (input$selectlabel == "Boxplot"){ggplot(sleep) + geom_boxplot(aes(x = `Avg hrs per day sleeping`))} }) } shinyApp(ui, server)

sliderInput 예시를 보겠습니다ui <- fluidPage( titlePanel("Sleeping habits in America"),sliderInput("sliderlabel", "Average hours of sleep", min = 7.5, max = 11, value = c(7.5, 11), step = 0.02),plotOutput("plotlabel")) server <- function(input, output) {output$plotlabel <- renderPlot({ filter(sleep, `Avg hrs per day sleeping` >= input$sliderlabel[1], `Avg hrs per day sleeping` <= input$sliderlabel[2]) %>% ggplot() + geom_boxplot(aes(x=`Avg hrs per day sleeping`)) })} shinyApp(ui, server)

shiny에는 shinyApp에서 사용할 수 있는 아이콘도 있습니다![]()
icon("...")을 사용합니다icon("bed")ui <- fluidPage( titlePanel("Sleeping habits in America"), sliderInput("sliderlabel",list(icon("bed"),"Select an option:"), min = 7.5, max = 11, value = c(7.5, 11), step = 0.02), plotOutput("plotlabel")) server <- function(input, output) { output$plotlabel <- renderPlot({ filter(sleep, `Avg hrs per day sleeping` >= input$sliderlabel[1], `Avg hrs per day sleeping` <= input$sliderlabel[2]) %>% ggplot() + geom_boxplot(aes(x=`Avg hrs per day sleeping`)) }) } shinyApp(ui, server)
![]()
shinydashboard로 대시보드 만들기