Learn R Programming

mets (version 1.2)

dby: Calculate summary statistics grouped by

Description

Calculate summary statistics grouped by variable

Usage

dby(data, INPUT, ..., ID = NULL, ORDER = NULL, SORT = 0,
  COMBINE = !REDUCE, NOCHECK = FALSE, ARGS = NULL, NAMES, FAST = TRUE,
  COLUMN = FALSE, REDUCE = FALSE, REGEX = mets.options()$regex)

Arguments

data
Data.frame
INPUT
Input variables (character or formula)
...
functions
ID
id variable
ORDER
(optional) order variable
SORT
sort order (id+order variable)
COMBINE
If TRUE result is appended to data
NOCHECK
No sorting or check for missing data
ARGS
Optional list of arguments to functions (...)
NAMES
Optional vector of column names
FAST
if FALSE fallback to slower (safer) function evaluation
COLUMN
If TRUE do the calculations for each column
REDUCE
Reduce number of redundant rows
REGEX
Allow regular expressions

Details

Calculate summary statistics grouped by ##' dby2 for column-wise calculations

Examples

Run this code
n <- 4
k <- c(3,rbinom(n-1,3,0.5)+1)
N <- sum(k)
d <- data.frame(y=rnorm(N),x=rnorm(N),id=rep(seq(n),k),num=unlist(sapply(k,seq)))
d2 <- d[sample(nrow(d)),]

dby(d, y~id, mean)
dby(d, y~id|num, cumsum)

dby(d,y~id|num, dlag, ARGS=list(k=1:2))

dby(d, y~id|num, dlag)
dby(d, y~id|num, y1=dlag, ARGS=list(k=1:2), NAMES=c("y1","y2"))
dby(d, y~id|num, mean=mean, csum=cumsum, n=length)
dby(d2,y~id|num, a=cumsum, b=mean, N=length, l1=function(x) c(NA,x)[-length(x)])

dby(d, y~id|num, nn=seq, n=length)

f <- function(x) apply(x,1,min)
dby(d, y+x~id, min=f)

dby(d,y+x~id|num, function(x) x)

f <- function(x) { cbind(cumsum(x[,1]),cumsum(x[,2]))/sum(x)}
dby(d, y+x~id, f)

# column-wise
a <- d
dby2(a, mean, median, REGEX=T) <- '^[y|x]'~id
a

Run the code above in your browser using DataLab