Let the user select a dataset from its own environment or from a package's environment.
Usage
import_globalenv_ui(
id,
globalenv = TRUE,
packages = get_data_packages(),
title = TRUE
)
import_globalenv_server(
id,
btn_show_data = TRUE,
show_data_in = c("popup", "modal"),
trigger_return = c("button", "change"),
return_class = c("data.frame", "data.table", "tbl_df", "raw"),
reset = reactive(NULL)
)
Arguments
- id
Module's ID.
- globalenv
Search for data in Global environment.
- packages
Name of packages in which to search data.
- title
Module's title, if
TRUE
use the default title, useNULL
for no title or ashiny.tag
for a custom one.- btn_show_data
Display or not a button to display data in a modal window if import is successful.
- show_data_in
Where to display data: in a
"popup"
or in a"modal"
window.- trigger_return
When to update selected data:
"button"
(when user click on button) or"change"
(each time user select a dataset in the list).- return_class
Class of returned data:
data.frame
,data.table
,tbl_df
(tibble) orraw
.- reset
A
reactive
function that when triggered resets the data.
Value
UI: HTML tags that can be included in shiny's UI
Server: a
list
with three slots:status: a
reactive
function returning the status:NULL
,error
orsuccess
.name: a
reactive
function returning the name of the imported data ascharacter
.data: a
reactive
function returning the importeddata.frame
.
Examples
if (interactive()) {
library(shiny)
library(datamods)
# Create some data.frames
my_df <- data.frame(
variable1 = sample(letters, 20, TRUE),
variable2 = sample(1:100, 20, TRUE)
)
results_analysis <- data.frame(
id = sample(letters, 20, TRUE),
measure = sample(1:100, 20, TRUE),
response = sample(1:100, 20, TRUE)
)
# Application
ui <- fluidPage(
fluidRow(
column(
width = 4,
import_globalenv_ui("myid")
),
column(
width = 8,
tags$b("Import status:"),
verbatimTextOutput(outputId = "status"),
tags$b("Name:"),
verbatimTextOutput(outputId = "name"),
tags$b("Data:"),
verbatimTextOutput(outputId = "data")
)
)
)
server <- function(input, output, session) {
imported <- import_globalenv_server("myid")
output$status <- renderPrint({
imported$status()
})
output$name <- renderPrint({
imported$name()
})
output$data <- renderPrint({
imported$data()
})
}
shinyApp(ui, server)
}