From 8997bfa2f04d1618bdb252d842d7eb90eeae3b60 Mon Sep 17 00:00:00 2001 From: Dean Attali Date: Fri, 23 Sep 2016 19:46:34 -0700 Subject: [PATCH 1/2] implement tip 3: Convert a data frame to a D3-compatible data structure in R --- R/timevisBasic.R | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/R/timevisBasic.R b/R/timevisBasic.R index ca20e69..d7c00ae 100644 --- a/R/timevisBasic.R +++ b/R/timevisBasic.R @@ -27,7 +27,7 @@ #' ) #' @export timevis <- function(data = list(), width = NULL, height = NULL, elementId = NULL) { - items <- data + items <- dataframeToD3(data) # forward options using x x = list( @@ -83,4 +83,16 @@ timevisBasic_html <- function(id, style, class, ...) { htmltools::tags$button("-") ) ) +} + +dataframeToD3 <- function(df) { + if (missing(df) || is.null(df)) { + return(list()) + } + if (!is.data.frame(df)) { + stop("timevis: the input must be a dataframe", call. = FALSE) + } + + row.names(df) <- NULL + apply(df, 1, function(row) as.list(row[!is.na(row)])) } \ No newline at end of file From d8f4271698b04b1e1b464d2e33d447a1fea829be Mon Sep 17 00:00:00 2001 From: Dean Attali Date: Fri, 23 Sep 2016 19:52:29 -0700 Subject: [PATCH 2/2] small fix to tip3 (make the widget work when no data is supplied) --- R/timevisBasic.R | 2 +- man/timevis.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/timevisBasic.R b/R/timevisBasic.R index d7c00ae..175678b 100644 --- a/R/timevisBasic.R +++ b/R/timevisBasic.R @@ -26,7 +26,7 @@ #' } #' ) #' @export -timevis <- function(data = list(), width = NULL, height = NULL, elementId = NULL) { +timevis <- function(data, width = NULL, height = NULL, elementId = NULL) { items <- dataframeToD3(data) # forward options using x diff --git a/man/timevis.Rd b/man/timevis.Rd index 9d66187..2090ace 100644 --- a/man/timevis.Rd +++ b/man/timevis.Rd @@ -4,7 +4,7 @@ \alias{timevis} \title{Create a basic timeline visualization} \usage{ -timevis(data = list(), width = NULL, height = NULL, elementId = NULL) +timevis(data, width = NULL, height = NULL, elementId = NULL) } \description{ Create a basic timeline visualization