From c840d06a96a72b18f1a3008fbe9cea225e05c716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Todor=20Kondi=C4=87?= <todor.kondic@uni.lu> Date: Sat, 2 May 2020 19:39:26 +0200 Subject: [PATCH] Add basic tags manipulation functions * R/shiny-ui-base.R(txt2tags,combine_tags): New functions. Needed for shiny UI processing of mzml table. --- R/shiny-ui-base.R | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R index a7f7db4..9f52e56 100644 --- a/R/shiny-ui-base.R +++ b/R/shiny-ui-base.R @@ -101,3 +101,22 @@ lst2rv_lst <- function(lst) { if (class(lst) != "list") lst else do.call(react_v,lapply(lst,lst2rv_lst)) } + +txt2tags <- function(txt) { + ## Turns a string into tags + x <- if (shiny::isTruthy(txt)) { + trimws(unlist(strsplit(txt, ","))) + } else list() + + + as.list(c("unspecified",x)) +} + +combine_tags <- function(df_tags,txt_tags) { + diff <- setdiff(df_tags,txt_tags) + for (x in diff) df_tags[df_tags %in% x] <- "unspecified" + df_tags <- factor(as.character(df_tags)) + df_tags <- factor(as.character(df_tags),levels = unique(c('unspecified',levels(df_tags),txt_tags))) + df_tags +} + -- GitLab