R/03-df_detail_groupLevel.R

Defines functions df_groupBy_topN

Documented in df_groupBy_topN

#' 获取数据框每个分组前N个数据
#'
#' @param data 数据框
#' @param gp_fieldName 分组字段,支持组合
#' @param order_fieldName 排序字段
#' @param N 前N个数据
#'
#' @return 返回数据框
#' @export
#'
#' @examples  df_groupBy_topN();
#' df_groupBy_topN(data = iris,gp_fieldName = 'Species',order_fieldName = 'Sepal.Width',N = 2
#'
#');
df_groupBy_topN <- function(data=iris,gp_fieldName=c('Species','Petal.Width'),order_fieldName='Sepal.Width',N=3){
  data <- substitute(data);
  part1 <- paste(gp_fieldName,collapse = ",");
  expr <- paste('res <- ',data,' %>% group_by(',part1,') %>%
    top_n(', N,',' ,order_fieldName,');');
  expr <- R_expr(expr);
  R_exec(expr);
  res <- as.data.frame(res,stringsAsFactors=F);
  return(res)
  
  
}
takewiki/tsdo documentation built on July 5, 2023, 10:57 p.m.