[R] Newbie trying to understand $ so I can understand acf function in stats

Peter Ehlers ehlers at ucalgary.ca
Wed Dec 8 20:37:29 CET 2010

On 2010-12-08 09:16, Dick Knox wrote:
> I am trying to understand the function acf
> stats:::acf shows me the function
> I am having trouble understanding the usage "$acf" in the following
>     acf<- array(.C(R_acf, as.double(x), as.integer(sampleT),
>           as.integer(nser), as.integer(lag.max), as.integer(type ==
>               "correlation"), acf = double((lag.max + 1L) * nser *
>               nser), NAOK = TRUE)$acf, c(lag.max + 1L, nser, nser))
> I interpret it as ... we are forming an array of dimensionality 3, and
> the contents of the array come from invoking a C program R_acf while the
> values of the 3 dimensions are lag.max + 1L, nser, and nser.
> simplified acf<-array(.C(args)$acf, c(some dimensions))


> R Language Definition section 3.4 "Indexing" explains that $ is used in
> indexing.
> But
> The light is not coming on when I try to apply that knowledge to
> understanding what is happening here.
> Can anyone suggest a path out of the darkness?

Here's a flashlight:
The .C() call returns a list of 6 objects, one of which is a vector
named 'acf'. That one is extracted by the '.C()$acf' construct and
is then used in creating the array.

> Also, when I search my system for a file named R_acf, I dont find one.
> I assume that this is because R_acf got task built into an executable
> and my distribution has the executable? I got R from "yum install R" on
> fedora linux. To see the source I apparently need to download a full
> compilable distribution of R.

You can download the sources from CRAN: get R-patched.tar.gz. If you
frequently want to look at source code, it's probably a good idea to
have that file locally. It will include comments that are stripped
out of the compiled version.

Or you can access the sources online (and hence most up-to-date) at:


where you will find acf in


(and no, it's not called R_acf there; the 'R_' gets added in

Uwe Ligges has written an article in R News (October 2006) on
accessing sources.

Peter Ehlers

More information about the R-help mailing list