ui.R

library(shinythemes)
shinyUI(fluidPage(# para tener sola una hoja 
  theme=shinytheme("cerulean"),
  #titulo principal de la aplicación
  titlePanel("La primera aplicacion Shiny de Karen"),
  #sección de la aplicación
  sidebarLayout(#position = "right", #para que el panel lateral sea derecho
    sidebarPanel( "Título en el panel lateral izquierdo",
                  br(),br(), # sirve para dar lineas de salto
"el clima en Quito últimamente es cálido",
hr(),
strong("FRASE"),# NEGRITAS
br(),
em("Puedes, deberías, y si eres lo suficientemente valiente para empezar, lo harás."), # CURSIVA
br(),
span("Stephen King", style = "color:coral"),# COLOREAR TEXTO
hr(),
img(src="8.jpg", align = 'center', height = 200, width = 200),
hr(),
a("www.karen.com"),
hr(),
code( 2+2/1), # para que se imprima como codigo
hr(),
pre("There's a fire starting in my heart
Reaching a fever pitch, and it's bringing me out the dark
  Finally, I can see you crystal clear
  Go ahead and sell me out, and I'll lay your ship bare
  See how I'll leave with every piece of you
  Don't underestimate the things that I will do
  There's a fire starting in my heart
  Reaching a fever pitch, and it's bringing me out the dark
  
  The scars of your love remind me of us
  They keep me thinking that we almost had it all
  The scars of your love, they leave me breathless
  I can't help feeling
  
  We could have had it all
  (You're gonna wish you never had met me)
  Rolling in the deep
  (Tears are gonna fall, rolling in the deep)
  You had my heart inside of your hand
  (You're gonna wish you never had met me)
  And you played it to the beat
  (Tears are gonna fall, rolling in the deep)")
                  
                  ),
    mainPanel("Título en el panel principal: CONTENIDO HTML",
              # los h sirven para escribir titulos
              
              h1("Título de segundo nivel"), # el titulo mas grande de shiny
              h2("Título de tercer nivel"),
              h3("Título de cuarto nivel"),
              h4("Título de quinto nivel"),
              h5("Título de sexto nivel"),
              h6("Título de septimo nivel"), # el titulo mas pequeño de shiny              
              "Si George Lucas tenía una primera aplicación, podría ser así:",
              h6 ("Episodio IV", align = "center"),
              h6 ("UNA NUEVA ESPERANZA", align = "center"),
              h5 ("Nos encontramos en un periodo de guerra civil.", align = "center"),
              h4 ("Las naves espaciales rebeldes, atacando", align = "center"),
              h3 ("desde una base oculta, han ganado", align = "center"),
              h2 ("su primera victoria contra el malvado", align = "center"),
              h1 (" Imperio Galáctico." ,align = "left"),
              p("p(): Un párrafo de texto"),
              a("a(): Un hyper link"),
              br(),
              "br(): Una salto de línea",
              hr(),
              "hr(): línea de división",
              hr(),
              "div(): División de texto con estilo uniforme:",
              div("Star Wars Episodio IV: Una Nueva Esperanza, originalmente lanzada como Star Wars,
                  es una película de ciencia ficción y fantasía de 1977 escrita y dirigida por George Lucas.
                  Innovadora en el uso de efectos especiales, esta entre las películas mas exitosas de todos los tiempos
                  y es considerada generalmente como una de las mas influyentes también. 
                  Fue seleccionada para ser preservada en la Biblioteca del Congreso como parte del National Film Registry
                  en 1989, el primer año de existencia del programa."),
              br(),
              "pre(): Texto tal como esta en una fuente original",
              br(),
              pre("Star Wars Episodio IV: Una Nueva Esperanza, 
                  originalmente lanzada como Star Wars, es una película de ciencia ficción
                  y fantasía de 1977 escrita y dirigida por George Lucas.
                  Innovadora en el uso de efectos especiales,
                  esta entre las películas mas exitosas de todos los tiempos
                  y es considerada generalmente como una de las mas influyentes también.
                  Fue seleccionada para ser preservada en la Biblioteca del Congreso
                  como parte del National Film Registry en 1989, el primer año de existencia
                  del programa."),
              br(),
              "code(): Un bloque con formato de código",
    br(),
              code("x    <- faithful[, 2]  # datos del géiser Old Faithful"),
    br(),
    code("cubos <- seq(min(x), max(x), length.out = input$cubos + 1)"),
    br(),
    code("hist(x, breaks = cubos, col = 'darkgray', border = 'white' # dibujar un histograma"),
    br(), 
    br(),
    "img(): insertar una imágen",
    br(),
    br(),
    code("img(src='see.jpg', align = 'left', height = 50, width = 80)"),
    
    hr(),
    img(src="see.jpg", align = "center", height = 50, width = 80),
    hr(),
    img(src="see.jpg", align = "center"),
    hr(),
   br(),
    strong("Texto en negrita"),
    br(),
    em("Texto en cursiva"),
    br(),
   "para darle color al texto: span('texto',style='color:blue')",
   br(),
   span("RStudio", style = "color:blue"),
   h2("Resumen"),
"Con sus nuevas habilidades, usted puede:",
hr(),
      p("* Crear una interfaz de usuario con fluidPage, titlePanel y sidebarLayout"),
      p("* Crear un elemento HTML con una de las funciones de la etiqueta de Shiny"),
      p("* Establecer atributos de etiquetas HTML en los argumentos de cada función de etiqueta"),
      p("* Agregue un elemento a su página web pasándolo a titlePanel, sidebarPanel o mainPanel"),
      p("* Agregue varios elementos a cada panel separándolos con una coma"),
      p("* Agregue imágenes colocando su imagen en una carpeta etiquetada www dentro de su directorio de aplicación brillante y luego llamando a la función img"),
hr(),

h2("Añadir widgets de control"),
p("Como agregar widgets de control a sus aplicaciones Shiny."),
  span("¿Qué es un widget? Un elemento web con el que los usuarios pueden interactuar.",style = "color:red"),
  p("Los widgets proporcionan una manera para que tus usuarios envíen mensajes a la aplicación brillante."),
p("Los widgets brillantes recogen un valor de su usuario. 
 Cuando un usuario cambia el widget, el valor también cambiará."),

h3("Widgets de control"),
hr(),

strong("actionButton"),"    Botón de acción",br(),
strong("checkboxGroupInput"),"  Un grupo de casillas de verificación",br(),
strong("checkboxInput"),    " Una sola casilla de verificación",br(),
strong("dateInput"),    "Un calendario para ayudar a la selección de fecha",br(),
strong("dateRangeInput")," Un par de calendarios para seleccionar un intervalo de fechas",br(), 
strong("FileInput")," Un asistente de control de carga de archivos",br(),
strong("HelpText"), " Texto de ayuda que se puede agregar a un formulario de entrada",br(),
strong("NumericInput")," Campo para ingresar números",br(),
strong("RadioButtons")," Un conjunto de botones de radio",br(),
strong("SelectInput")," Una casilla con opciones para seleccionar",br(),
strong("SliderInput")," Una barra deslizante",br(),
strong("SubmitButton")," Un botón de envío",br(),
strong("TextInput")," Un campo para introducir texto",br(),
hr(),

fluidRow(
  # el 3 es el numero de filas a ocupar
  column(3,# es para imprimir varios resultados u objetos en una sola fila
         h3("Botones"),
         actionButton("accion", label = "Acción"),
         br(),
         br(), 
         submitButton("Enviar")),
  
  column(3,
         h3("Casilla de verificación única"),
         checkboxInput("casilla", label = "Opción A", value = TRUE)),
  
  column(3, 
         checkboxGroupInput("casillas", 
                            label = h3("Casillas de verificación:"), 
                            choices = list("Opción 1" = 1, 
                                           "Opción 2" = 2, "Opción 3" = 3),
                            selected = 1)),
  
  column(3, 
         dateInput("fecha", 
                   label = h3("Ingresar Fecha:"), 
                   value = "2017-01-01"))   
),

fluidRow(
  
  column(3,
         dateRangeInput("Fechas", label = h3("Rango de fechas:"))),
  
  column(3,
         fileInput("Archivo", label = h3("Ingresar archivo:"))),
  
  column(3, 
         h3("Texto de ayuda"),
         helpText("Nota: La ayuda de texto no es dinámica,", 
                  "pero es una forma fácil de añadir texto",
                  "que facilite el us de los otros widgets.")),
  
  column(3, 
         numericInput("numero", 
                      label = h3("Ingrese número"), 
                      value = 1))   
),

fluidRow(
  
  column(3,
         radioButtons("radio", label = h3("Botones de radio"),
                      choices = list("Opción 1" = 1, "Opción 2" = 2,
                                     "Opción 3" = 3),selected = 3)),
  
  column(3,
         selectInput("select", label = h3("Seleccione:"), 
                     choices = list("Opción 1" = 1, "Opción 2" = 2,
                                    "Opción 3" = 3), selected = 1)),
  
  column(3, 
         sliderInput("slider", label = h3("Sliders:"),
                     min = 0, max = 100, value = 50),
         sliderInput("slider2", "",
                     min = 0, max = 100, value = c(25, 75))
  ),
  
  column(3, 
         textInput("texto", label = h3("Ingrese texto:"), 
                   value = "Aquí..."))   
),
              
h2("Visualización de los resultados"),
p("Es hora de darle a su aplicación Shiny la calidad 'en vivo'! Crearemos resultados reactivos para mostrarlos en la aplicación Shiny."),
p("La salida reactiva responde automáticamente cuando el usuario cambia un widget."),

h3("Dos pasos"),
"Puede crear una salida reactiva con un proceso de dos pasos.",
br(),
br(),
p("* Agregue un objeto R a su interfaz de usuario con ui.R."),
p("* Dígale a Shiny cómo construir el objeto en server.R. El objeto será reactivo si el código que lo construye llama un valor de widget."),

hr(),
h2("Paso 1:"), "Agregar un objeto R a la interfaz de usuario.",
p("Shiny proporciona una familia de funciones que convierten objetos R en salida para su interfaz de usuario. Cada función crea un tipo específico de salida."),
br(),

strong("htmlOutput")," HTML bruto",br(),
strong("imageOutput")," imagen",br(),
strong("plotOutput"), "resultado gráfico de salida",br(),
strong("tableOutput")," Tabla",br(),
strong("textOutput")," texto",br(),
p("Coloque la función de salida dentro de sidebarPanel o mainPanel en el script ui.R."),
hr(),
h3("Ejemplos:"),
helpText("Crearemos un mapa demográfico con información
del censo del 2010"),

selectInput("var", 
            label = "Escoja una variable para mostrar",
            choices = c("Porcentaje A", "Porcentaje B",
                        "Porcentaje C", "Porcentaje D"),
            selected = "Porcentaje A"),

sliderInput("range", 
            label = "Rango de interés:",
            min = 0, max = 100, value = c(0, 10)),

h2("Paso 2: Proporcione el código R para construir el objeto."),
p("Colocar una función en ui.R le indica a Shiny dónde mostrar su objeto. A continuación, debe indicar a Shiny cómo crear el objeto."),
p("Haga esto proporcionando el código de R que construye el objeto en server.R. El código debe ir en su script server.R."),
p("Construimos un objeto de tipo lista denominado output que contiene todo el código necesario para actualizar los objetos R en su aplicación.
  Cada objeto R debe tener su propia entrada en la lista."),
p("El nombre del elemento en el server debe coincidir con el nombre del elemento reactivo que creó en ui.R."),
p("En el script siguiente, output$text1 coincide con textOutput('text1') en su script ui.R."),
hr(),
code("shinyServer(function(input, output) {"),br(),
code("  output$text1 <- renderText({ "),br(),
code("  'Usted ha seleccionado esto:'"),br(),
code("  })"),br(),
code("})"),br(),
hr(),

strong("renderImage")," Imágenes (guardadas en la carpeta seteada.)",br(),
strong("renderPlot")," procesos para constrir gráficos.",br(),
strong("renderPrint")," cualquier salida impresa",br(),
strong("renderTable")," tabla de datos, matriz, otras estructuras",br(),
strong("rendertext")," cadenas de texto",br(),

h2("Usar valores de widget:"),

hr(),
selectInput("datos", "Escoja un conjunto de datos:", 
            choices = c("rocas", "presión", "carros")), # lee opcion seleccionada en el ui para usarla en el server

numericInput("obs", "Numero de obbservaciones a mostrar", 10), # lee numero en el ui para usarlo en el server

verbatimTextOutput("summary"),# imprime resultados del server

tableOutput("tabla")
              ))
  
))

server.R

library(shiny)
library(datasets)

shinyServer(function(input, output) { # fija
  output$text1 <- renderText({ 
    "Usted ha seleccionado esto:"
  })
 ########################################################
  
  datos <- reactive({ # no imprime resultados, solo fija el objeto o la base
    switch(input$datos,
           "rocas" = datasets::rock,
           "presión" = datasets::pressure,
           "carros" =datasets:: cars)
  })
  
  # generamos un summary de los datos
  output$summary <- renderPrint({ # imprimir resultados de una funcion de R
    dataset <- datos()
    summary(dataset)
  })
  
  # mostrar las primeras "n" observaciones
  output$tabla <- renderTable({ # output$ para los objetos que se imprimen ui
    head(datos(), n = input$obs) # input$ para los objetos que se leen desde ui
  })
  
})

Crear una carpeta en el directorio de trabajo y guardar ahí las siguientes imágenes