On Jan 10, 2014, at 2:04 AM, Long Vo wrote:

Hi R users,
I need to apply a function on a list of vectors. This is simple when I use
functions that returns only one numerical value such as 'mean' or
'variance'. Things get complex when I use functions returning a list of
value, such as 'acf'.
In the following example I first create a list of vectors with equal length 10. Then I try to get the first order autocorrelation coefficient of each
vector using lapply:

#####
library(stats)
X=rnorm(1:100)
Y=split(X,as.numeric(gl(length(X),10,length(X))))# to divide X into 10
sub-vectors
app=lapply(Y,FUN=acf,lag.max=1,plot=F)
app
#####

I need to know how to display other values of the function e.g. 'type',
'lag' not just 'acf'. Because using
####
app=lapply(Y,FUN=acf$type,lag.max=1,plot=F)
####


acf$type is not a function. The "$" function is a wrapper for "[[" so try:

lapply(app, "[[", 'type')

To do it in one step, try:

lapply(Y, function(x) acf(x)$type)

--
David.

prompts the error "object of type 'closure' is not subsettable"


Note that this is only an illustrative example. The function I am studying is not 'acf', but it also return a list of values and I need to call out
specific values.

Helps and comments are welcome.

Long



--
View this message in context: 
http://r.789695.n4.nabble.com/using-lapply-to-get-function-values-tp4683373.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@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.

David Winsemius, MD
Alameda, CA, USA

______________________________________________
R-help@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.

Reply via email to