[R] Puzzled by an error with apply()

Tony Plate tplate at acm.org
Tue Apr 7 21:45:15 CEST 2009


One simple explanation for the error message you received is that you have a typo: 'lapply' instead of 'apply':

> x <- matrix(1:6, 2)
> apply(x, 1, sum)
[1]  9 12
> lapply(x, 1, sum)
Error in match.fun(FUN) : '1' is not a function, character or symbol
> 

However, it's difficult to diagnose without at least seeing some cut'n'pasted transcripts.  The output of traceback() would also be useful.

-- Tony Plate

Gang Chen wrote:
> I've written a function, myFunc, that works fine with myFunc(data,
> ...), but when I use apply() to run it with an array of data
> 
> apply(myArray, 1, myFunc, ...)
> 
> I get a strange error:
> 
> Error in match.fun(FUN) : '1' is not a function, character or symbol
> 
> which really puzzles me because '1' is meant to be the margin of the
> array I want to apply over, but how come does apply() treat it as a
> function?
> 
> I have been successfully using apply() for a while, so I must have
> made a stupid mistake this time. Hopefully somebody can point out
> something obviously wrong without me providing any details of the
> function.
> 
> TIA,
> Gang
> 
> ______________________________________________
> 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