Peng Yu
2009-Aug-11 20:09 UTC
[R] Is there a summary on different version of 'apply' functions? What is the meaning of the prefixes?
Hi, There are quiet a few different 'apply' functions, such as lapply, sapply and many more. I'm very familiar with the 'Apply' function in Mathematica. Can somebody point me a summary of all the 'apply' functions in R. Also, I'm curious that what 'l' and 's' (and other prefixes) stand for in 'lapply' and 'sapply' Regards, Peng
Bert Gunter
2009-Aug-11 20:35 UTC
[R] Is there a summary on different version of 'apply' functions?What is the meaning of the prefixes?
?help.search help.search("apply") Problem is, various packages have added their own apply-type functions; so what you get depends on what packages you have downloaded. Bert Gunter Genentech Nonclinical Biostatisics -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Peng Yu Sent: Tuesday, August 11, 2009 1:09 PM To: r-help at stat.math.ethz.ch Subject: [R] Is there a summary on different version of 'apply' functions?What is the meaning of the prefixes? Hi, There are quiet a few different 'apply' functions, such as lapply, sapply and many more. I'm very familiar with the 'Apply' function in Mathematica. Can somebody point me a summary of all the 'apply' functions in R. Also, I'm curious that what 'l' and 's' (and other prefixes) stand for in 'lapply' and 'sapply' Regards, Peng ______________________________________________ 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.
William Dunlap
2009-Aug-11 22:18 UTC
[R] Is there a summary on different version of 'apply' functions?What is the meaning of the prefixes?
> -----Original Message----- > From: r-help-bounces at r-project.org > [mailto:r-help-bounces at r-project.org] On Behalf Of Peng Yu > Sent: Tuesday, August 11, 2009 1:09 PM > To: r-help at stat.math.ethz.ch > Subject: [R] Is there a summary on different version of > 'apply' functions?What is the meaning of the prefixes? > > Hi, > > There are quiet a few different 'apply' functions, such as lapply, > sapply and many more. I'm very familiar with the 'Apply' function in > Mathematica. Can somebody point me a summary of all the 'apply' > functions in R. Also, I'm curious that what 'l' and 's' (and other > prefixes) stand for in 'lapply' and 'sapply'The 'traditional' apply functions (from S) are lapply(X,FUN,...): apply FUN to each element of a vector X and return the results results as a list of the returned values. 'l' is for the return value being a list. sapply(X,FUN,...): like lapply(), but also try to 'simplify' the returned value. E.g., if all values in the output list are scalar numerics, collapse the result to a numeric vector or if all are numerics of the same length, collapse it to a matrix. The 's' is for simplify. apply(X,MARGIN,FUN,...): apply FUN to slices of multiway array X and 'simplify' the results in the manner of sapply. It has no prefix, probably because it was the first one written. tapply(X,INDICES,FUN,...): INDICES is a list of k vectors, each the length of X. Compute the list split(X,INDICES), call lapply on that list, and reformat the result into a k dimensional table of return values of FUN. 't' is for the table format of the output. R has mapply(FUN, x1, x2, ..., xn) where the vectors x1,...,xn are expanded to the length of the longest and FUN is a function of n variables. It calls FUN(x1[[i]],x2[[i]],...,xn[[i]]) for i in 1:length(longestX). You can choose whether the result should be 'simplified' or not. The 'm' is for 'multiple arguments'. R has eapply(env, FUN, ...), which applies FUN to every object in the environment env. 'e' is for the input 'environment'. R and Splus have rapply, which calls FUN on every element of the list passed to it, and if the element is also a list recursively descend into it. The 'r' is for for the 'recursive' nature of the application. Note that the letters before 'apply' sometimes refer to the nature of the output, sometimes to the nature of the input, sometimes to the nature of the the subsetting, and sometimes to history. There are lots of specialized *apply functions in the packages. Bill Dunlap TIBCO Software Inc - Spotfire Division wdunlap tibco.com> Regards, > Peng > > ______________________________________________ > 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. >
hadley wickham
2009-Aug-12 01:44 UTC
[R] Is there a summary on different version of 'apply' functions? What is the meaning of the prefixes?
You might also want to have a look at the plyr package, http://had.co.nz/plyr. This package is an attempt to standardise and make consistent the various common uses of apply and friends. Hadley On Tue, Aug 11, 2009 at 3:09 PM, Peng Yu<pengyu.ut at gmail.com> wrote:> Hi, > > There are quiet a few different 'apply' functions, such as lapply, > sapply and many more. I'm very familiar with the 'Apply' function in > Mathematica. Can somebody point me a summary of all the 'apply' > functions in R. Also, I'm curious that what 'l' and 's' (and other > prefixes) stand for in 'lapply' and 'sapply' > > Regards, > Peng > > ______________________________________________ > 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. >-- http://had.co.nz/