apply a Positioning Method to every group. works like ddply from plyr package, but the grouping column is always called groups, and the Positioning Method is not necessarily a function (but can be).
gapply <- function ### apply a Positioning Method to every group. works like ddply from ### plyr package, but the grouping column is always called groups, and ### the Positioning Method is not necessarily a function (but can be). (d, ### data frame with column groups. method, ### Positioning Method to apply to every group separately. ..., ### additional arguments, passed to Positioning Methods. groups="groups" ### can also be useful for piece column. ){ stopifnot(is.data.frame(d)) dfs <- split(d,as.character(d[[groups]])) f <- function(d,...){ res <- apply.method(method,d,columns.to.check=c("x","y"),...) res[[groups]] <- d[[groups]][1] res } results <- lapply(dfs,f,...) if(any(!sapply(results,is.data.frame))){ print(results) stop("Positioning Method did not return data.frame") } do.call(rbind,results) ### data frame of results after applying FUN to each group in d. }
Please contact Toby Dylan Hocking if you are using directlabels or have ideas to contribute, thanks! |
Documentation website generated from source code version 2021.2.24 (git revision bb6db07 Mon, 14 Jun 2021 22:38:45 +0530) using inlinedocs. |
validate |