[R] Error in J[time] : invalid subscript type 'closure'

MacQueen, Don macqueen1 at llnl.gov
Wed Feb 27 21:44:13 CET 2013

In my experience, error messages that include the word "closure" almost
always mean that I have tried to do something with a function that isn't
supposed to be done with a function (undoubtedly not a technically correct
statement, but it works for me).

I think that applies here, since time is a function in the R stats package:
  > find('time')
  [1] "package:stats"

So, consistent with Berend's suggestion, the expression
   s_fun(parms, time)
is passing the time() function to the expression
and it makes no sense to use a function as an index to a numeric vector. I
also believe that is why the error message said, "invalid subscript type".


Don MacQueen

Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550

On 2/24/13 2:24 AM, "Berend Hasselman" <bhh at xs4all.nl> wrote:

On 24-02-2013, at 10:59, Jannetta Steyn <jannetta at henning.org> wrote:

> Hi All
> I have Googled the message Error in J[time] : invalid subscript type
> 'closure', but can't quite make sense from the results that I get. What
> does it mean?
> I'm trying to access an element in an array. Here is a short bit of code
> that produces the error:
> s_fun <- function(parms,time) {
>  with(as.list(c(parms)),{
>    print(J[time])
>  })
> }
> times = seq(from=0, to=100, by = 0.1);
> v<-14
> J<-c(rep(c(rep(0,10),rep(v,10)),5))
> parms=c(J)
> out <- s_fun(parms, time)

Look at your code carefully. The error is staring you in the face.
The second argument in the call of s_fun is "time" which is nit evaluated
You probably meant "times".


R-help at r-project.org mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list