[R] tapply to data.frame or matrix

Rui Barradas ruipbarradas at sapo.pt
Tue Sep 4 17:30:15 CEST 2012


Hello,

Here's a way.

test <- as.data.frame(matrix(1:20, ncol = 5, nrow=4))
test.ind <- c(1,1,2,2,2)

lapply(split(colnames(test), test.ind), function(x) unlist(test[, x]))

Hope this helps,

Rui Barradas
Em 04-09-2012 15:40, Jannis escreveu:
> Dear R users,
>
>
> imagine i have a dataframe and an indexing vector with the length of the
> amount of columns of the dataframe. Is there any convenient way to
> combine the colums of the dataframe into vectors (or straight away apply
> fundtions to these subsets) according to the indexing vector in a
> similar manner to the tapply function?
>
> For example, in the follwoing case, I would like to combine columns 1
> and two into one vector, and columns 3-4 into another:
>
> test     = as.data.frame(matrix(1:20, ncol = 5, nrow=4))
> test.ind =c(1,1,2,2,2)
>
>
> Thanks a lot!
> Jannis
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list