Calendar
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shiny)
ui <- fluidPage(
dateInput("date",
label = h3("날짜입력"),
value = "2018-01-01"),
hr(),
fluidRow(column(3, verbatimTextOutput("value")))
)
server <- function(input, output, session) {
output$value <- renderPrint({input$date})
}
shinyApp(ui, server)
Check Box
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shiny)
ui <- fluidPage(
actionButton("chk",
label = h3("체크박스그룹"),
choices = list("선택1"=1,
"선택2"=2,
"선택3"=3
),
selected = 1
),
hr(),
fluidRow()
)
server <- function(input, output, session) {
output$value <- renderText({input$chk})
}
shinyApp(ui, server)
Date
install.packages("rvest")
install.packages("shiny")
install.packages("shinydashboard")
install.packages("shinyjs")
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shiny)
ui <- fluidPage(
actionButton("date",
label = "액션버튼"
),
hr(),
verbatimTextOutput("value")
)
server <- function(input, output, session) {
output$value = renderText({input$action})
}
shinyApp(ui, server)
File
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shiny)
ui <- fluidPage(
fileInput("file",
label = h3("파일 업로드")
),
hr(),
fluidRow(column(4, verbatimTextOutput("value")))
)
server <- function(input, output, session) {
output$value <- renderPrint({str(input$file)})
}
shinyApp(ui, server)
Gender Check
library(shiny)
library(shinyjs)
gender <- function(x){
t <- substr(x,8,8) # x는 주민등록번호이고 여기서 8번째, 8자리까지만 추출해라
cat('\n SSN 에서 추출한 값:',t) # print(t)는 값만 보여주므로 cat으로 추출값 확인
y <- switch(t,
'1'='남성',
'2'='여성',
'3'='남성',
'4'='여성',
'5'='외국인',
'6'='외국인',
'잘못된 값'
)
cat('\n 결과값:', y)
return(y)
}
ui <- fluidPage(
useShinyjs(),
textInput("txt",
label = h3("주민번호앞자리 입력"),
value ="(예시)900101-2"),
actionButton("btn", "확 인")
)
server <- function(input, output, session) {
onclick("btn",
info({gender(input$txt)})
)
# output $value <- renderText({gender(input$txt)})
# 성별을 체크하는 함수 코딩
}
shinyApp(ui, server)
Reservation
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shiny)
ui <- fluidPage(
dateRangeInput("date",
label = h3("기간 설정")
),
hr(),
fluidRow(column(4, verbatimTextOutput("value")))
)
server <- function(input, output, session) {
output$value <- renderPrint({input$action})
}
shinyApp(ui, server)
Slider
if("shiny" %in% installed.packages("shiny") == FALSE)install.packages("shiny")
library(shiny)
ui <- shiny::fluidPage(
sliderInput(
inputId = "num1",
label = "숫자를 선택하세요",
value = 25,
min =1,
max = 50,
step = 1
),
plotOutput("hist")
)
server <- function(input, output){
output$hist <- renderPlot({
hist(rnorm(input$num1),
maing = "50 범위내에서 선택")
})
}
shiny::shinyApp(ui, server)
TextInput
library(shiny)
library(shiny)
ui <- fluidPage(
textInput("txt",
label = h3("로그인"),
value = "ID를 입력"
),
hr(),
fluidRow(column(3, verbatimTextOutput("value")))
)
server <- function(input, output, session) {
output $value <- renderText({input$txt})
}
shinyApp(ui, server)
LS0tDQp0aXRsZTogIlNoaW55IEJ1dHRvbiINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjIyMgQWN0aW9uQnV0dG9uDQoNCmBgYHtyfQ0KbGlicmFyeShzaGlueSkNCmxpYnJhcnkoc2hpbnlkYXNoYm9hcmQpDQpsaWJyYXJ5KHNoaW55anMpDQoNCmxpYnJhcnkoc2hpbnkpDQoNCnVpIDwtIGZsdWlkUGFnZSgNCiAgYWN0aW9uQnV0dG9uKCJhY3Rpb24iLA0KICAgICAgICAgICAgICAgbGFiZWwgPSAi7JWh7IWY67KE7Yq8Ig0KICAgICAgICAgICAgICAgKSwNCiAgaHIoKSwNCiAgdmVyYmF0aW1UZXh0T3V0cHV0KCJ2YWx1ZSIpDQopDQoNCnNlcnZlciA8LSBmdW5jdGlvbihpbnB1dCwgb3V0cHV0LCBzZXNzaW9uKSB7DQogIG9uY2xpY2soImJ0biIsaW5mbyhkYXRlKCkpKQ0KfQ0KDQpzaGlueUFwcCh1aSwgc2VydmVyKQ0KDQpgYGANCiMjIyMgQWN0aW9uIEJ1dHRvbiBjaG9pY2VzDQpgYGB7cn0NCmxpYnJhcnkoc2hpbnkpDQpsaWJyYXJ5KHNoaW55ZGFzaGJvYXJkKQ0KbGlicmFyeShzaGlueWpzKQ0KDQpsaWJyYXJ5KHNoaW55KQ0KDQp1aSA8LSBmbHVpZFBhZ2UoDQogIGFjdGlvbkJ1dHRvbigiY2hrIiwNCiAgICAgICAgICAgICAgIGxhYmVsID0gaDMoIuyEoO2DnSIpLA0KICAgICAgICAgICAgICAgdmFsdWUgPSBUUlVFDQogICksDQogIGhyKCksDQogIGZsdWlkUm93KCkNCikNCg0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQsIHNlc3Npb24pIHsNCiAgb3V0cHV0JHZhbHVlIDwtIHJlbmRlclRleHQoe2lucHV0JGNoa30pDQp9DQoNCnNoaW55QXBwKHVpLCBzZXJ2ZXIpDQoNCmBgYA0KDQojIyMjIENhbGVuZGFyDQpgYGB7cn0NCmxpYnJhcnkoc2hpbnkpDQpsaWJyYXJ5KHNoaW55ZGFzaGJvYXJkKQ0KbGlicmFyeShzaGlueWpzKQ0KDQpsaWJyYXJ5KHNoaW55KQ0KDQp1aSA8LSBmbHVpZFBhZ2UoDQogIGRhdGVJbnB1dCgiZGF0ZSIsDQogICAgICAgICAgICBsYWJlbCA9IGgzKCLrgqDsp5zsnoXroKUiKSwNCiAgICAgICAgICAgIHZhbHVlID0gIjIwMTgtMDEtMDEiKSwNCmhyKCksDQpmbHVpZFJvdyhjb2x1bW4oMywgdmVyYmF0aW1UZXh0T3V0cHV0KCJ2YWx1ZSIpKSkNCikNCg0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQsIHNlc3Npb24pIHsNCiAgb3V0cHV0JHZhbHVlIDwtIHJlbmRlclByaW50KHtpbnB1dCRkYXRlfSkNCn0NCg0Kc2hpbnlBcHAodWksIHNlcnZlcikNCg0KYGBgDQoNCiMjIyMgQ2hlY2sgQm94DQpgYGB7cn0NCmxpYnJhcnkoc2hpbnkpDQpsaWJyYXJ5KHNoaW55ZGFzaGJvYXJkKQ0KbGlicmFyeShzaGlueWpzKQ0KDQpsaWJyYXJ5KHNoaW55KQ0KDQp1aSA8LSBmbHVpZFBhZ2UoDQogIGFjdGlvbkJ1dHRvbigiY2hrIiwNCiAgICAgICAgICAgICAgIGxhYmVsID0gaDMoIuyytO2BrOuwleyKpOq3uOujuSIpLA0KICAgICAgICAgICAgICAgY2hvaWNlcyA9IGxpc3QoIuyEoO2DnTEiPTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi7ISg7YOdMiI9MiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICLshKDtg50zIj0zDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgc2VsZWN0ZWQgPSAxDQogICAgICAgICAgICAgICAgKSwNCiAgaHIoKSwNCiAgZmx1aWRSb3coKQ0KKQ0KDQpzZXJ2ZXIgPC0gZnVuY3Rpb24oaW5wdXQsIG91dHB1dCwgc2Vzc2lvbikgew0KICBvdXRwdXQkdmFsdWUgPC0gcmVuZGVyVGV4dCh7aW5wdXQkY2hrfSkNCn0NCg0Kc2hpbnlBcHAodWksIHNlcnZlcikNCg0KYGBgDQoNCiMjIyMgRGF0ZQ0KYGBge3J9DQppbnN0YWxsLnBhY2thZ2VzKCJydmVzdCIpDQppbnN0YWxsLnBhY2thZ2VzKCJzaGlueSIpDQppbnN0YWxsLnBhY2thZ2VzKCJzaGlueWRhc2hib2FyZCIpDQppbnN0YWxsLnBhY2thZ2VzKCJzaGlueWpzIikNCg0KbGlicmFyeShzaGlueSkNCmxpYnJhcnkoc2hpbnlkYXNoYm9hcmQpDQpsaWJyYXJ5KHNoaW55anMpDQoNCmxpYnJhcnkoc2hpbnkpDQoNCnVpIDwtIGZsdWlkUGFnZSgNCiAgYWN0aW9uQnV0dG9uKCJkYXRlIiwNCiAgICAgICAgICAgICAgIGxhYmVsID0gIuyVoeyFmOuyhO2KvCINCiAgKSwNCiAgaHIoKSwNCiAgdmVyYmF0aW1UZXh0T3V0cHV0KCJ2YWx1ZSIpDQopDQoNCnNlcnZlciA8LSBmdW5jdGlvbihpbnB1dCwgb3V0cHV0LCBzZXNzaW9uKSB7DQogIG91dHB1dCR2YWx1ZSA9IHJlbmRlclRleHQoe2lucHV0JGFjdGlvbn0pDQp9DQoNCnNoaW55QXBwKHVpLCBzZXJ2ZXIpDQoNCmBgYA0KDQojIyMjIEZpbGUNCmBgYHtyfQ0KbGlicmFyeShzaGlueSkNCmxpYnJhcnkoc2hpbnlkYXNoYm9hcmQpDQpsaWJyYXJ5KHNoaW55anMpDQoNCmxpYnJhcnkoc2hpbnkpDQoNCnVpIDwtIGZsdWlkUGFnZSgNCiAgZmlsZUlucHV0KCJmaWxlIiwNCiAgICAgICAgICAgICAgICAgbGFiZWwgPSBoMygi7YyM7J28IOyXheuhnOuTnCIpDQogICksDQogIGhyKCksDQogIGZsdWlkUm93KGNvbHVtbig0LCB2ZXJiYXRpbVRleHRPdXRwdXQoInZhbHVlIikpKQ0KKQ0KDQpzZXJ2ZXIgPC0gZnVuY3Rpb24oaW5wdXQsIG91dHB1dCwgc2Vzc2lvbikgew0KICBvdXRwdXQkdmFsdWUgPC0gcmVuZGVyUHJpbnQoe3N0cihpbnB1dCRmaWxlKX0pDQp9DQoNCnNoaW55QXBwKHVpLCBzZXJ2ZXIpDQoNCmBgYA0KDQojIyMjIEdlbmRlciBDaGVjaw0KYGBge3J9DQpsaWJyYXJ5KHNoaW55KQ0KbGlicmFyeShzaGlueWpzKQ0KDQpnZW5kZXIgPC0gZnVuY3Rpb24oeCl7DQogIHQgPC0gc3Vic3RyKHgsOCw4KSAjIHjripQg7KO866+865Ox66Gd67KI7Zi47J206rOgIOyXrOq4sOyEnCA467KI7Ke4LCA47J6Q66as6rmM7KeA66eMIOy2lOy2nO2VtOudvA0KICBjYXQoJ1xuIFNTTiDsl5DshJwg7LaU7Lac7ZWcIOqwkjonLHQpICAjIHByaW50KHQp64qUIOqwkuunjCDrs7Tsl6zso7zrr4DroZwgIGNhdOycvOuhnCDstpTstpzqsJIg7ZmV7J24DQogIHkgPC0gc3dpdGNoKHQsDQogICAgICAgICAnMSc9J+uCqOyEsScsDQogICAgICAgICAnMic9J+yXrOyEsScsDQogICAgICAgICAnMyc9J+uCqOyEsScsDQogICAgICAgICAnNCc9J+yXrOyEsScsDQogICAgICAgICAnNSc9J+yZuOq1reyduCcsDQogICAgICAgICAnNic9J+yZuOq1reyduCcsDQogICAgICAgICAn7J6Y66q765CcIOqwkicNCiAgICAgICAgICkNCiAgY2F0KCdcbiDqsrDqs7zqsJI6JywgeSkNCiAgcmV0dXJuKHkpDQp9DQoNCnVpIDwtIGZsdWlkUGFnZSgNCiAgdXNlU2hpbnlqcygpLA0KICB0ZXh0SW5wdXQoInR4dCIsDQogICAgICAgICAgICBsYWJlbCA9IGgzKCLso7zrr7zrsojtmLjslZ7snpDrpqwg7J6F66ClIiksDQogICAgICAgICAgICB2YWx1ZSA9IijsmIjsi5wpOTAwMTAxLTIiKSwNCiAgYWN0aW9uQnV0dG9uKCJidG4iLCAi7ZmVIOyduCIpDQopDQoNCnNlcnZlciA8LSBmdW5jdGlvbihpbnB1dCwgb3V0cHV0LCBzZXNzaW9uKSB7DQogIG9uY2xpY2soImJ0biIsDQogICAgICAgICAgaW5mbyh7Z2VuZGVyKGlucHV0JHR4dCl9KQ0KICAgICAgICAgICkNCiAgIyBvdXRwdXQgJHZhbHVlIDwtIHJlbmRlclRleHQoe2dlbmRlcihpbnB1dCR0eHQpfSkNCiAgIyDshLHrs4TsnYQg7LK07YGs7ZWY64qUIO2VqOyImCDsvZTrlKkNCn0NCg0Kc2hpbnlBcHAodWksIHNlcnZlcikNCg0KDQpgYGANCg0KIyMjIyBSYWRpbyBCdXR0b24NCmBgYHtyfQ0KaWYoInBsb3RseSIgJWluJSBpbnN0YWxsZWQucGFja2FnZXMoInBsb3RseSIpID09IEZBTFNFKWluc3RhbGwucGFja2FnZXMoInBsb3RseSIpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoc2hpbnkpDQpkYXRhIDwtIGRhdGEuZnJhbWUoDQogIFBvcHVsYXRpb24gPC0gc2FtcGxlKDE6MjAsMTAscmVwbGFjZSA9IFQpLA0KICBIb3VzZUhvbGRzIDwtIHNhbXBsZSgxOjIwLDEwLHJlcGxhY2UgPSBUKSwNCiAgeWVhciA8LSBzYW1wbGUoYygyMDAwLDIwMTApLDEwLHJlcGxhY2UgPSBUKQ0KKQ0KDQp1aSA8LSBmbHVpZFBhZ2UoDQogIHRpdGxlUGFuZWwoDQogICAgdGl0bGUgPSBoNCgi7J246rWsIOyhsOyCrCIsIGFsaWduID0gImNlbnRlciIpDQogICksDQogIHNpZGViYXJQYW5lbCgNCiAgICBzaWRlYmFyTGF5b3V0KA0KICAgICAgcmFkaW9CdXR0b25zKCJZRUFSIiwiMTDrhYQg7KO86riw7ISg7YOdIiwNCiAgICAgICAgICAgICAgICAgICBjaG9pY2VzID0gYygiMjAwMCIsICIyMDEwIiksDQogICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgPSAiMjAwMCINCiAgICAgICkNCiAgICApDQogICksDQogIG1haW5QYW5lbCgNCiAgICBwbG90T3V0cHV0KCJiYXIiLGhlaWdodD01MDApDQogICkNCikNCg0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQsIHNlc3Npb24pew0KICByZWFjdGl2ZV9kYXRhIDwtIHJlYWN0aXZlKHsNCiAgICBzZWxlY3RlZC55ZWFyIDwtIGFzLm51bWVyaWMoaW5wdXQkWUVBUikNCiAgICByZXR1cm4oZGF0YVtkYXRhJHllYXIgPT0gc2VsZWN0ZWRfeWVhcl0pDQogIH0pDQogIG91dHB1dCRiYXIgPC0gcmVuZGVyUGxvdCh7DQogICAgY29sb3IgPC0gYygiYmx1ZCIsICJyZWQiKQ0KICAgIG91cl9kYXRhIDwtIHJlYWN0aXZlX2RhdGEoKQ0KICAgIGJhcnBsb3QoY29sU3VtcyhvdXJfZGF0YVssYygiUG9wdWxhdGlvbiIsIkhvdXNlSG9sZHMiKV0pLA0KICAgICAgICAgICAgeWxhYiA8LSAiVG90YWwiLA0KICAgICAgICAgICAgeGxhYiA8LSAiQ2Vuc3VzIFllYXIiLA0KICAgICAgICAgICAgbmFtZXMuYXJnID0gYygiUG9wdWxhdGlvbiIsIkhvdXNlSG9sZHMiKSwNCiAgICAgICAgICAgIGNvbCA9IGNvbG9yKQ0KICB9KQ0KfQ0KDQpzaGlueUFwcCh1aSwgc2VydmVyKQ0KDQpgYGANCg0KIyMjIyBSZXNlcnZhdGlvbg0KYGBge3J9DQpsaWJyYXJ5KHNoaW55KQ0KbGlicmFyeShzaGlueWRhc2hib2FyZCkNCmxpYnJhcnkoc2hpbnlqcykNCg0KbGlicmFyeShzaGlueSkNCg0KdWkgPC0gZmx1aWRQYWdlKA0KICBkYXRlUmFuZ2VJbnB1dCgiZGF0ZSIsDQogICAgICAgICAgICAgICAgIGxhYmVsID0gaDMoIuq4sOqwhCDshKTsoJUiKQ0KICAgICAgICAgICAgICAgICApLA0KICBocigpLA0KICBmbHVpZFJvdyhjb2x1bW4oNCwgdmVyYmF0aW1UZXh0T3V0cHV0KCJ2YWx1ZSIpKSkNCikNCg0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQsIHNlc3Npb24pIHsNCiAgb3V0cHV0JHZhbHVlIDwtIHJlbmRlclByaW50KHtpbnB1dCRhY3Rpb259KQ0KfQ0KDQpzaGlueUFwcCh1aSwgc2VydmVyKQ0KDQoNCg0KYGBgDQoNCiMjIyMgU2VsZWN0aW5wdXQNCmBgYHtyfQ0KbGlicmFyeShzaGlueSkNCmxpYnJhcnkoc2hpbnlkYXNoYm9hcmQpDQpsaWJyYXJ5KHNoaW55anMpDQoNCmxpYnJhcnkoc2hpbnkpDQoNCnVpIDwtIGZsdWlkUGFnZSgNCiAgc2VsZWN0SW5wdXQoInNlbGVjdCIsDQogICAgICAgICAgICBsYWJlbCA9IGgzKCLshYDroIntirgg67CV7IqkIiksDQogICAgICAgICAgICBjaG9pY2VzID0gbGlzdCgNCiAgICAgICAgICAgICAgIuyEoO2DnTEiID0gMSwNCiAgICAgICAgICAgICAgIuyEoO2DnTIiID0gMiwNCiAgICAgICAgICAgICAgIuyEoO2DnTMiID0gMw0KICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgc2VsZWN0ZWQgPSAxLA0KICBocigpLA0KICBmbHVpZFJvdyhjb2x1bW4oMywgdmVyYmF0aW1UZXh0T3V0cHV0KCJ2YWx1ZSIpKSkNCikNCg0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQsIHNlc3Npb24pIHsNCiAgb3V0cHV0JHZhbHVlIDwtIHJlbmRlclByaW50KHtpbnB1dCRkYXRlfSkNCn0NCg0Kc2hpbnlBcHAodWksIHNlcnZlcikNCmBgYA0KDQojIyMjIFNsaWRlcg0KYGBge3J9DQppZigic2hpbnkiICVpbiUgaW5zdGFsbGVkLnBhY2thZ2VzKCJzaGlueSIpID09IEZBTFNFKWluc3RhbGwucGFja2FnZXMoInNoaW55IikNCmxpYnJhcnkoc2hpbnkpDQp1aSA8LSBzaGlueTo6Zmx1aWRQYWdlKA0KICBzbGlkZXJJbnB1dCgNCiAgICBpbnB1dElkID0gIm51bTEiLA0KICAgIGxhYmVsID0gIuyIq+yekOulvCDshKDtg53tlZjshLjsmpQiLA0KICAgIHZhbHVlID0gMjUsDQogICAgbWluID0xLA0KICAgIG1heCA9IDUwLA0KICAgIHN0ZXAgPSAxDQogICksDQogIHBsb3RPdXRwdXQoImhpc3QiKQ0KKQ0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQpew0KICAgICAgICAgIG91dHB1dCRoaXN0IDwtIHJlbmRlclBsb3Qoew0KICAgICAgICAgIGhpc3Qocm5vcm0oaW5wdXQkbnVtMSksDQogICAgICAgICAgbWFpbmcgPSAiNTAg67KU7JyE64K07JeQ7IScIOyEoO2DnSIpDQogICAgfSkNCn0NCg0Kc2hpbnk6OnNoaW55QXBwKHVpLCBzZXJ2ZXIpDQoNCmBgYA0KDQojIyMjIFRleHRJbnB1dA0KYGBge3J9DQpsaWJyYXJ5KHNoaW55KQ0KbGlicmFyeShzaGlueSkNCg0KdWkgPC0gZmx1aWRQYWdlKA0KICB0ZXh0SW5wdXQoInR4dCIsDQogICAgICAgICAgICBsYWJlbCA9IGgzKCLroZzqt7jsnbgiKSwNCiAgICAgICAgICAgIHZhbHVlID0gIklE66W8IOyeheugpSINCiAgICAgICAgICAgICksDQogIGhyKCksDQogIGZsdWlkUm93KGNvbHVtbigzLCB2ZXJiYXRpbVRleHRPdXRwdXQoInZhbHVlIikpKQ0KKQ0KDQpzZXJ2ZXIgPC0gZnVuY3Rpb24oaW5wdXQsIG91dHB1dCwgc2Vzc2lvbikgew0KICBvdXRwdXQgJHZhbHVlIDwtIHJlbmRlclRleHQoe2lucHV0JHR4dH0pDQp9DQoNCnNoaW55QXBwKHVpLCBzZXJ2ZXIpDQpgYGANCg0K