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