From 99a68d5e7ac35cb29e7fd834b78aa6ffe92adf86 Mon Sep 17 00:00:00 2001 From: Jeffrey Baumes Date: Fri, 21 Nov 2014 14:15:32 -0500 Subject: [PATCH] Add select_ to support later dplyr --- NAMESPACE | 1 + R/treeplyr.R | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 6d2ce16..ea23cec 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,6 +7,7 @@ S3method(print,asrArbor) S3method(print,treedata) S3method(reorder,treedata) S3method(select,treedata) +S3method(select_,treedata) S3method(summarise,treedata) S3method(summarize,treedata) S3method(treedply,treedata) diff --git a/R/treeplyr.R b/R/treeplyr.R index eacac39..7434e37 100644 --- a/R/treeplyr.R +++ b/R/treeplyr.R @@ -27,8 +27,10 @@ make.treedata <- function(tree, data, name_column="detect") { } if(name_column==0){ dat.label <- rownames(data) - } - dat <- tbl_df(as.data.frame(lapply(1:ncol(data), function(x) type.convert(as.character(data[,x]))))) + } + # dat <- tbl_df(as.data.frame(lapply(1:ncol(data), function(x) type.convert(as.character(data[,x]))))) + dat <- data + colnames(dat) <- coln #dat <- apply(dat, 2, type.convert) if(name_column==0){ @@ -77,6 +79,23 @@ select.treedata <- function(tdObject, ...){ return(tdObject) } +if (exists('select_')) { + #' @export + select_.treedata <- function(tdObject, ..., .dots){ + dots <- lazyeval::all_dots(.dots, ...) + vars <- select_vars_(names(tdObject$dat), dots) + dat <- tdObject$dat[, vars, drop = FALSE] + row.names(dat) <- attributes(tdObject)$tip.label + tdObject$dat <- dat + return(tdObject) + } +} else { + select_ <- function() {} + + #' @export + select_.treedata <- function() {} +} + #' @export filter.treedata <- function(tdObject, ...){ if(is.null(list(substitute(...))[[1]])) stop("No criteria provided for filtering")