[R] function in argument

David Winsemius dwinsemius at comcast.net
Sat Apr 2 00:06:43 CEST 2011


On Apr 1, 2011, at 5:56 PM, array chip wrote:

> Hi, I tried to pass the function dist() as an argument, but got an  
> error
> message. However, almost the same code with mean() as the function  
> to be passed,
> it works ok.
>
> foo<-function (x,
>    xfun = dist)
> {
> xfun(x)
> }
>
> foo(matrix(1:100,nrow=5))
> Error in foo(matrix(1:100, nrow = 5)) : could not find function "xfun"
>

Works on my machine.

 > foo(matrix(1:100,nrow=5))
           1         2         3         4
2  4.472136
3  8.944272  4.472136
4 13.416408  8.944272  4.472136
5 17.888544 13.416408  8.944272  4.472136


You have probably overwritten `dist` with a non-functional object.

Try rm(dist) and re-run:


>
> foo<-function (x,
>     xfun = mean)
> {
>  xfun(x)
> }
>
> foo(1:10)
> [1] 5.5
>
> what am I missing here?

Thinking about your full workspace, I would guess.

--

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list