Блестящий пакет в программировании на R

Опубликовано: 4 Января, 2022

Пакет - подходящий способ организовать работу и поделиться ею с другими. Пакеты на языке R представляют собой набор функций R, скомпилированного кода и примеров данных. Они хранятся в каталоге под названием «библиотека» в среде R. По умолчанию R устанавливает набор пакетов во время установки. Один из самых важных пакетов в R - это пакет Shiny. Shiny - это пакет R, который упрощает создание интерактивных веб-приложений прямо из R. Он помогает размещать автономные приложения на веб-странице или встраивать их в документы R Markdown или создавать информационные панели. Также можно расширить приложения Shiny с помощью тем CSS, HTML-виджетов и действий JavaScript.

Установка

Чтобы использовать пакет в программировании на R, необходимо сначала установить пакет. Эту задачу можно выполнить с помощью команды install.packages («packagename») . Чтобы установить весь пакет Shiny , введите следующее:

 install.packages («блестящий»)


Чтобы установить последние разработки непосредственно с GitHub, запустите вместо этого:

 если (! require ("пульты"))
  install.packages («пульты»)
удаленно :: install_github ("rstudio / shiny")


Важные глагольные функции в блестящем пакете

  • fluidPage (): создает страницу с гибким макетом. Гибкий макет страницы состоит из строк, которые, в свою очередь, включают столбцы. Строки существуют для того, чтобы их элементы располагались в одной строке, а столбцы - для определения размера горизонтального пространства в сетке шириной 12 единиц. Гибкие страницы масштабируют свои компоненты в реальном времени, чтобы заполнить всю доступную ширину браузера.

   Syntax:

   fluidPage(…, title = NULL, theme = NULL)

Параметр

Описание

Элементы для включения на страницу.
заглавие Заголовок окна браузера.
тема Альтернативная таблица стилей Bootstrap.

Пример:

Это базовый шаблон блестящего приложения.

р

# import shiny package
library (shiny)
# define a page with fluid layout
ui <- fluidPage ( h1 ( "GeeksforGeeks article on shiny package in R" ),
p (style = "font-family:Impact" , "My first shiny app" )
)
server <- function (input, output) {}
shinyApp (ui = ui, server = server)

Выход:

  • shinyApp (): он создает объекты приложения Shiny либо из явной пары пользовательский интерфейс / сервер, либо в обход пути к каталогу, содержащему приложение Shiny.

   Syntax:



   shinyApp(ui, server, onStart = NULL, options = list(), uiPattern = “/”, enableBookmarking = NULL)

   shinyAppDir(appDir, options = list())

   shinyAppFile(appFile, options = list())</p 
 

Параметр

Описание

ui Определение пользовательского интерфейса приложения.
сервер

У него есть три параметра: ввод, вывод и сеанс.

Он вызывается один раз для каждого сеанса, чтобы гарантировать независимость каждого приложения.

onStart Функция, которая будет вызываться перед фактическим запуском приложения.
параметры Параметры, которые следует передать в runApp.
uipattern

Регулярное выражение, которое будет применяться к каждому

Запрос GET, чтобы определить, следует ли использовать пользовательский интерфейс для обработки запроса.

включить закладку Может быть «url», «server» или «disable». Значение по умолчанию - NULL.
appDir Путь к каталогу, содержащему приложение Shiny.
appFile Путь к файлу .R, содержащему приложение Shiny.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
sliderInput (inputId = "num" ,
label = "Choose a number" ,
value = 10, min = 1, max = 1000),
plotOutput ( "hist" )
)
server <- function (input, output)
{
output$hist <- renderPlot ({
hist ( rnorm (input$num))
})
}
# create shiny app object
# using shinyApp
shinyApp (ui = ui, server = server)

Выход:

  • reactive (): создает реактивное выражение. Реактивное выражение - это выражение, результат которого со временем будет меняться. Reactive () обертывает обычное выражение для создания реактивного выражения.

   Syntax:

   reactive(x, env = parent.frame(), quoted = FALSE, label = NULL)

Параметр

Описание

Икс Выражение.
env Родительская среда для реактивного выражения.
цитируется

Это выражение цитируется? По умолчанию это ЛОЖЬ.

Это полезно, когда вы хотите использовать выражение, которое хранится в переменной.

метка Ярлык для реактивного выражения.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
textInput (inputId = "num" , label = "Choose a number" ,
value = "" , width = 100, placeholder = NULL ),
plotOutput ( "hist" ),
verbatimTextOutput ( "stats" )
)
server <- function (input, output)
{
# use reactive to create
# a reactive expression
data <- reactive ({ rnorm (input$num)})
output$hist <- renderPlot ({ hist ( data ())})
output$stats <- renderPrint ({ summary ( data ())})
}
# create shiny app object
# using shinyApp
shinyApp (ui = ui, server = server)

Выход:

Теперь измените входное значение с 50 на 100, чтобы посмотреть, что произойдет.

Выходные значения (гистограмма и сводка) также изменяются с чередованием входных значений, т. Е. Приложение обладает реактивностью.

  • Наблюдение за событием (): запускает код для запуска на серверах. Реагируйте на «событийные» реактивные входные данные, значения и выражения.

Syntax:

observeEvent(eventExpr, handlerExpr, event.env = parent.frame(), event.quoted = FALSE, handler.env = parent.frame(), handler.quoted = FALSE, label = NULL, suspended = FALSE, priority = 0, domain = getDefaultReactiveDomain(), autoDestroy = TRUE, ignoreNULL = TRUE, ignoreInit = FALSE, once = FALSE)

Параметр

Описание

eventExpr

Выражение, представляющее событие. Это может быть

простое или сложное реактивное выражение.

handler.Expr Выражение, вызываемое всякий раз, когда eventExpr становится недействительным.
event.env

Родительская среда для eventExpr.

По умолчанию это вызывающая среда.

event.quoted

Возвращает независимо от того, заключено ли выражение eventExpr в кавычки или нет.

По умолчанию это ЛОЖЬ.

handler.env Родительская среда для handlerExpr. По умолчанию это вызывающая среда.
handler.quoted

Возвращает, заключено ли выражение handlerExpr в кавычки или нет.

По умолчанию это ЛОЖЬ.

метка Метка для наблюдателя или реактивного
приостановленный Если TRUE, запустить наблюдателя в приостановленном состоянии.
приоритет

Целое или числовое значение, определяющее приоритет

с которым должен выполняться этот наблюдатель. Допускаются положительные, отрицательные и нулевые значения.

автоуничтожение

Если TRUE (по умолчанию), наблюдатель будет автоматически

уничтожается, когда его домен (если таковой имеется) заканчивается.

ignoreNULL Должно ли запускаться действие, когда на входе ПУСТО (NULL).
ignoreInit

Если ИСТИНА, то при первом создании / инициализации этого наблюдаемого события,

игнорировать handlerExpr (второй аргумент), независимо от того,

в противном случае он должен работать или нет. По умолчанию - ЛОЖЬ.

однажды

Следует ли немедленно уничтожить это наблюдениеEvent после

при первом запуске кода в handlerExpr.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui = fluidPage (
textInput (inputId = "num" ,
label = "Enter a numeric value" , value = "10" ),
actionButton ( "button" , "Calculate" ),
column (8, tableOutput ( "table" ))
)
server = function (input, output)
{
# Take an action every time button is pressed
observeEvent (input$button, {
cat ( "Showing" , input$num, "rows " )
})
# Take a reactive dependency
# on input$num, but not on any
# of the stuff inside the function
df <- eventReactive (input$button, {
head (cars, input$num)
})
output$table <- renderTable ({
df ()
})
}
# create shiny app object
# using shinyApp
shinyApp (ui, server)

Выход:

  • eventReactive (): реактивное выражение, которое реагирует только на определенные значения. Реагируйте на «событийные» реактивные входные данные, значения и выражения.

Syntax:

eventReactive(eventExpr, 
valueExpr, 
event.env = parent.frame(), 
event.quoted = FALSE, 
value.env = parent.frame(), 
value.quoted = FALSE, 
label = NULL, 
domain = getDefaultReactiveDomain(), 
ignoreNULL = TRUE, 
ignoreInit = FALSE)

Параметр

Описание

eventExpr Выражение, представляющее событие, может быть простым или сложным реактивным выражением.
valueExpr Он производит возвращаемое значение eventReactive. Он будет выполнен в области выделения ().
event.env Родительская среда для eventExpr. По умолчанию это вызывающая среда.
event.quoted Возвращает независимо от того, заключено ли выражение eventExpr в кавычки или нет. По умолчанию это ЛОЖЬ.
value.env Родительская среда для valueExpr. По умолчанию это вызывающая среда.
value.quoted Возвращает независимо от того, заключено ли выражение valueExpr в кавычки или нет. По умолчанию это ЛОЖЬ.
ignoreNULL Должно ли запускаться действие, когда на входе ПУСТО (NULL).
ignoreInit

Если ИСТИНА, то при первом создании / инициализации этого наблюдаемого события,

игнорировать handlerExpr (второй аргумент), независимо от того,

в противном случае он должен работать или нет. По умолчанию - ЛОЖЬ.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
sliderInput (inputId = "num" ,
label = "Choose a number" ,
value = 25, min = 1, max = 100),
actionButton (inputId = "go" ,
label = "Update" ),
plotOutput ( "hist" )
)
server <- function (input, output)
{
data <- eventReactive (input$go, {
rnorm (input$num)
})
output$hist <- renderPlot ({
hist ( data ())
})
}
# create shiny app object
# using shinyApp
shinyApp (ui = ui, server = server)

Выход:

Здесь выход не изменяется с входными значениями до тех пор, пока не будет нажата кнопка обновления.

  • actionButton (): создает кнопку действия или ссылку. Их начальное значение равно нулю и увеличивается на единицу при каждом нажатии.

   Syntax:

   actionButton(inputId, label, icon = NULL, width = NULL, …)

   actionLink(inputId, label, icon = NULL, …)

Параметр

Описание

inputId Входной слот, который будет использоваться для доступа к значению.
метка Содержимое кнопки или ссылки.
значок Необязательный значок () для отображения на кнопке.
ширина Ширина ввода (например, «200 пикселей» или «100%»).
…. Именованные атрибуты, применяемые к кнопке или ссылке.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
sliderInput ( "obs" , "Number of observations" , 0, 1000, 500),
actionButton ( "goButton" , "Go!" , class = "btn-success" ),
plotOutput ( "distPlot" )
)
server <- function (input, output)
{
output$distPlot <- renderPlot ({
input$goButton
dist <- isolate ( rnorm (input$obs))
hist (dist)
})
}
# create shiny app object
# using shinyApp
shinyApp (ui, server)

Выход:

Выходные данные обновляются, как только нажата кнопка actionButton (Go!) .

  • checkboxGroupInput (): создает группу флажков, которые можно использовать для независимого переключения нескольких вариантов. Сервер получит ввод в виде вектора символов выбранных значений.

Syntax:

checkboxGroupInput(inputId, label, choices = NULL, selected = NULL, inline = FALSE, width = NULL, choiceNames = NULL, choiceValues = NULL)

Параметр

Описание

inputId Входной слот, который будет использоваться для доступа к значению.
метка Содержимое кнопки или ссылки.
выбор

Список значений, для которых нужно установить флажки. Если элементы

список получает имя, тогда пользователю отображается это имя, а не значение.

выбранный Первоначальный выбор.
в линию Если TRUE, визуализируйте варианты по горизонтали.
ширина Ширина ввода (например, «200 пикселей» или «100%»).
choiceValues, choiceNames Список имен и ценностей.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
checkboxGroupInput ( "icons" , "Choose icons:" ,
choiceNames =
list ( icon ( "dog" ), icon ( "cat" ),
icon ( "fish" ), icon ( "bug" )),
choiceValues =
list ( "dog" , "cat" , "fish" , "bug" )),
textOutput ( "txt" )
)
server <- function (input, output, session)
{
output$txt <- renderText ({
icons <- paste (input$icons, collapse = ", " )
paste ( "You chose" , icons)
})
}
# create shiny app object
# using shinyApp
shinyApp (ui = ui, server = server)

Выход:

  • textInput (): создает метку ввода текста.

   Syntax:

   textInput(inputId, label, value = “”, width = NULL, placeholder = NULL)

Параметр

Описание

inputId Входной слот, который будет использоваться для доступа к значению.
метка Содержимое кнопки или ссылки.
ценить Начальное значение.
ширина Ширина ввода (например, «200 пикселей» или «100%»).
заполнитель Строка символов, подсказывающая пользователю, что можно ввести в элемент управления.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
textInput ( "txt" , "Enter yoour text here" , "Empty" ),
verbatimTextOutput ( "value" )
)
server <- function (input, output)
{
output$value <- renderText ({ input$text })
}
# create shiny app object
# using shinyApp
shinyApp (ui, server)

Выход

  • textOutput (): создает элемент вывода текста. Отображать реактивную выходную переменную в виде текста на странице приложения.

   Syntax:

   textOutput(outputId, container = if (inline) span else div, inline = FALSE)

Параметр

Описание

outputId Выходная переменная, из которой нужно прочитать значение.
контейнер Функция для создания HTML-элемента, содержащего текст.
в линию Используйте встроенный (span ()) или блочный контейнер (div ()) для вывода.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
textInput (inputId = "Name" , label = "Enter your name" ),
textOutput ( "txt" )
)
server <- function (input, output, session)
{
output$txt <- renderText ({
Name <- paste (input$Name, collapse = ", " )
paste ( "Welcome! to geeksforgeeks " , Name)
})
}
# create shiny app object
# using shinyApp
shinyApp (ui = ui, server = server)

Выход:

  • wellPanel (): создает панель со слегка вставленной рамкой и серым фоном.

   Syntax:

   wellPanel(…)

Параметр

Описание

Элементы пользовательского интерфейса для включения в панель.

Пример:

р

# import shiny package
library (shiny)
# define fluid page layout
ui <- fluidPage (
sliderInput (inputId = "num" ,
label = "Choose a number" ,
value = 25, min = 1, max = 100),
# define plot inside
# a wellPanel
wellPanel ( plotOutput ( "hist" ))
)
server <- function (input, output)
{
output$hist <- renderPlot ({
hist ( rnorm (input$num), main = input$title)
})
}
# create shiny app object
# using shinyApp
shinyApp (ui = ui, server = server)

Выход:

Обратите внимание, что гистограмма находится внутри серого поля (wellPanel).