From a61483dc9040e0f44faf767257c227ca54a9ae30 Mon Sep 17 00:00:00 2001 From: "Qian, Hai" Date: Fri, 18 Apr 2014 01:02:07 -0700 Subject: [PATCH] Better replacement of string needs () --- DESCRIPTION | 2 +- R/utility-generic.R | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 9fb8809..075db0c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: PivotalR Type: Package Title: R front-end to PostgreSQL and Pivotal (Greenplum) database, wrapper for MADlib -Version: 0.1.15.36 +Version: 0.1.15.38 Date: 2014-03-10 Author: Predictive Analytics Team at Pivotal Inc. , with contributions from Data Scientist Team at Pivotal Inc. diff --git a/R/utility-generic.R b/R/utility-generic.R index 9b1421c..c83d62c 100644 --- a/R/utility-generic.R +++ b/R/utility-generic.R @@ -217,8 +217,8 @@ arraydb.to.arrayr <- function (str, type = "double", n = 1) ## ## grouping column do not use factor f2.labels <- .gsub("I\\((.*)\\)", "(\\1)", f2.labels, perl = T) - f2.labels <- .gsub("as\\.factor\\((.*)\\)", "\\1", f2.labels, perl = T) - f2.labels <- .gsub("factor\\((.*)\\)", "\\1", f2.labels, perl = T) + f2.labels <- .gsub("as\\.factor\\((.*)\\)", "(\\1)", f2.labels, perl = T) + f2.labels <- .gsub("factor\\((.*)\\)", "(\\1)", f2.labels, perl = T) grp.expr <- f2.labels for (i in seq_len(length(f2.labels))) { @@ -250,7 +250,7 @@ arraydb.to.arrayr <- function (str, type = "double", n = 1) ## f.labels <- gsub("`([^`]*)(\\[\\d+\\])`", "\"\\1\"\\2", f.labels) right.hand <- paste(f.labels, collapse = "+") if (refresh) { # second pass - right.hand <- .gsub("as\\.factor\\((((?!as\\.factor).)*)\\)", "\\1", right.hand, perl = T) + right.hand <- .gsub("as\\.factor\\((((?!as\\.factor).)*)\\)", "(\\1)", right.hand, perl = T) if (sum(data@.is.factor) > 0) { distinct <- list() @@ -295,8 +295,9 @@ arraydb.to.arrayr <- function (str, type = "double", n = 1) elm <- .regmatches(right.hand, gregexpr("as\\.factor\\s*\\([^\\(\\)]+\\)", right.hand, perl=T))[[1]] - col <- .strip(.gsub("as\\.factor\\s*\\(([^\\(\\)]+)\\)", "\\1", elm, + col <- .strip(.gsub("as\\.factor\\s*\\(([^\\(\\)]+)\\)", "(\\1)", elm, perl = T)) + col <- gsub("^\\((.*)\\)$", "\\1", col) if (!all(col %in% names(data))) stop("At least one of the variables cannot be set to be a factor ", "because either it does not exist in the data table ", @@ -309,7 +310,7 @@ arraydb.to.arrayr <- function (str, type = "double", n = 1) ## factors added by formula for (cl in col) data[[cl]] <- as.factor(data[[cl]]) - right.hand <- .gsub("as\\.factor\\((((?!as\\.factor).)*)\\)", "\\1", right.hand, perl = T) + right.hand <- .gsub("as\\.factor\\((((?!as\\.factor).)*)\\)", "(\\1)", right.hand, perl = T) ## right.hand <- gsub("factor\\((((?!factor).)*)\\)", "\\1", right.hand, perl = T) } @@ -329,8 +330,8 @@ arraydb.to.arrayr <- function (str, type = "double", n = 1) ## dependent variable ## factor does not play a role in dependent variable dep.var <- .gsub("I\\((.*)\\)", "(\\1)", rownames(f.factors)[1], perl = T) - dep.var <- .gsub("as\\.factor\\((.*)\\)", "\\1", dep.var, perl = T) - dep.var <- .gsub("factor\\((.*)\\)", "\\1", dep.var, perl = T) + dep.var <- .gsub("as\\.factor\\((.*)\\)", "(\\1)", dep.var, perl = T) + dep.var <- .gsub("factor\\((.*)\\)", "(\\1)", dep.var, perl = T) ## dep.var <- .replace.with.quotes(dep.var, data@.col.name) origin.dep <- dep.var