Git Product home page Git Product logo

dv.listings's Introduction

dv.listings

The listings module from DaVinci's {dv.listings} package displays arbitrary datasets as listings. Users can select the dataset to be shown, and specify which columns of the dataset should be displayed as well as their order. The displayed columns can be sorted and filtered. Moreover, the listing can be filtered to show only entries containing a keyword specified by the user. The module is not limited to usage of one data source, most notably, it can handle data from ADaM or SDTM.

The module is prepared to be used in combination with DaVinci's {dv.manager} package and supports its bookmarking functionality.

Installation

Feel free to copy the following code chunk to install the latest version of {dv.listings}.

if (!require("remotes")) install.packages("remotes")
remotes::install_github("Boehringer-Ingelheim/dv.listings")

Since the listings module is intended to be used within an application created by means of DaVinci's module manager, make sure that you have installed {dv.manager} with a version number equally to or higher than 2.1.0.

Data requirements

As stated above, the listings module can display data from various data sources. However, for the column filters to function correctly, columns need to be converted to the appropriate data types, e.g., categorical data should be stored as factor, numbers as numeric, etc. To simplify data conversion, the package provides a convenient function called convert_data(). An example demonstrating the usage of this function can be found in the section below.

Note that dv.listings drops row names. In case your dataset is equipped with informative row names that are required to be displayed, you have to include them manually in the scope of preprocessing. For example:

my_data <- datasets::mtcars
my_data[["index"]] <- rownames(my_data)
attributes(my_data$index)$label <- "Former row names"

Example

To define an app based on {dv.listings} and {dv.manager}, you need to

  1. load data,
  2. make sure that the provided data comply with the requirements of the listings module,
  3. define a list of modules that contains the listings module,
  4. and launch the app via run_app() from {dv.manager}.

The following example contains the listed steps. For data protection purposes, the example uses dummy data from {pharmaverseadam}.

library(dv.listings)

# 1. Create a data list with example data
data_list <- list(
  adsl  = pharmaverseadam::adsl,
  adae  = pharmaverseadam::adae,
  adtte = pharmaverseadam::adtte_onco
)

# 2. Preprocessing
# Convert data to appropriate types
data_list$adsl <- convert_data(data_list$adsl)
data_list$adae <- convert_data(data_list$adae)
data_list$adtte <- convert_data(data_list$adtte)

# Assign meaningful labels to data domain names
attributes(data_list$adsl)$label <- "Subject Level"
attributes(data_list$adae)$label <- "Adverse Events"
attributes(data_list$adtte)$label <- "Time-to-Event"

# Specify default variables
default_vars <- list(
  adsl = c("STUDYID", "USUBJID", "SITEID", "ARM"),
  adae = c("STUDYID", "ASTDY", "AENDT", "AESER")
)

# 3. Module list
module_list <- list(
  "Exemplary Table" = mod_listings(
    module_id = "mod1",
    dataset_names = c("adsl", "adae", "adtte"),
    default_vars = default_vars
  )
)

# 4. Launch the app
dv.manager::run_app(
  data = list("MyData" = data_list),
  module_list = module_list,
  filter_data = "adsl"
)

Export functionality

The listings module allows users to export listings. Users have the option to either download only the currently displayed listing or all available listings.

To download the currently active listing, it will be saved exactly as it appears on the screen, either in .xlsx or .pdf format. In case any filters have been applied, the downloaded file will reflect these and only include the filtered data.

For users who wish to download all listings, the module allows saving in .xlsx format exclusively. This process disregards any local filters, and each listing is saved in a separate worksheet within the file.

Please be aware that the PDF download feature is implemented using an RMarkdown file that is rendered into a PDF through LaTeX. As such, it is important to note that a LaTeX installation, along with the necessary packages, is required to use this feature.

dv.listings's People

Contributors

mattkorb avatar sorinvoicu avatar iglauss avatar zsigmas avatar

Watchers

Martin Etmajer avatar Ming Yang avatar  avatar Matthias Degroote avatar

dv.listings's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.