Phil,
   Thanks for the reply. Your suggestion is actually the one I started
with (assuming I'm understanding you) but I didn't seem to even get
down into my function, or the error message is from other place within
my function that I haven't discovered yet:

> x = seq(5:20)
> ResultList = lapply(x, DoAvgCalcs, IndexData, Lookback=x,  
> SampleSize=TestSamples , Iterations=TestIterations )
Error in rep(NA, k) : invalid 'times' argument
>

   I should write some fake code that gives you all the depth so we
could jsut run it. If no on eelse sees the answer then I'll be back
later with more code that completely runs.

Thanks,
Mark


On Fri, Sep 18, 2009 at 10:16 AM, Phil Spector
<spec...@stat.berkeley.edu> wrote:
> Mark -
>   The "l" in lapply refers to that fact that it will *return*
> a list, not that it wants a list for input.  You could input a list, but
> then each element of the list would be one of the values you wanted
> processed.  So I think you want
>
> x = seq(5:20)
> ResultList = lapply(x, DoAvgCalcs, IndexData, Lookback=x,
>                       SampleSize=TestSamples , Iterations=TestIterations )
>
> This will return a list whose elements are the result of calling
> the DoAvgCalcs function with each value contained in x.  If they
> were all the same length, and you wanted them simplified to a matrix,
> you could use sapply (s for simplify) instead of lapply (l for list).
>
>                                        - Phil Spector
>                                         Statistical Computing Facility
>                                         Department of Statistics
>                                         UC Berkeley
>                                         spec...@stat.berkeley.edu
>
>
> On Fri, 18 Sep 2009, Mark Knecht wrote:
>
>> Hi,
>>  I'm trying to get better at things like lapply but it still stumps
>> me. I have a function I've written, tested and debugged using
>> individual calls to the function, ala:
>>
>> ResultList5  = DoAvgCalcs(IndexData, Lookback=5,
>> SampleSize=TestSamples , Iterations=TestIterations )
>> ResultList8  = DoAvgCalcs(IndexData, Lookback=8,
>> SampleSize=TestSamples , Iterations=TestIterations )
>> ResultList13 = DoAvgCalcs(IndexData, Lookback=13,
>> SampleSize=TestSamples , Iterations=TestIterations )
>> ResultList21 = DoAvgCalcs(IndexData, Lookback=21,
>> SampleSize=TestSamples , Iterations=TestIterations )
>>
>> The function returns a list of numbers which I use for processing
>> later. I'd like to run this on a longer list (100's of values for
>> Lookback) so my thought was to try lapply but so far I cannot get the
>> darn thing right.
>>
>>  Let's say I want to run the function on a string of values:
>>
>> BarTestList = list(seq(5:20))
>>
>> So my thought was something like:
>>
>> x = list(seq(5:20))
>> ResultList = lapply(x, DoAvgCalcs, IndexData, Lookback=x,
>> SampleSize=TestSamples , Iterations=TestIterations )
>>
>> which fails down lower complaining that what it's receiving for
>> Lookback isn't an integer:
>>
>>> x = list(seq(5:20))
>>> ResultList = lapply(x, DoAvgCalcs, IndexData, Lookback=x,
>>>  SampleSize=TestSamples , Iterations=TestIterations )
>>
>> Error in MyLag(df$Close, Lookback) :
>>  (list) object cannot be coerced to type 'integer'
>>>
>>
>>  Can someone suggest how to do this correctly?
>>
>> Thanks,
>> Mark
>>
>> ______________________________________________
>> 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.
>>
>

______________________________________________
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