[Rd] combn implementation
Wolfgang Huber
huber at ebi.ac.uk
Fri Jan 19 14:38:53 CET 2007
Dear Giampiero,
> storage.mode(1)
[1] "double"
> storage.mode(1:1)
[1] "integer"
as.integer(1) would perhaps be the more pedagogical way to program this.
Best wishes
Wolfgang
------------------------------------------------------------------
Wolfgang Huber EBI/EMBL Cambridge UK http://www.ebi.ac.uk/huber
> Hi,
> I was checking the source code to the function combn that "generates
> all combinations of the elements of 'x' taken 'm' at a time.",
> because I wished to modify it. I have a doubt about a statement.
> This is the main loop.
>
> ._1 <- 1:1
> nmmp1 <- n - m + ._1
> while (a[1] != nmmp1) {
> if (e < n - h) {
> h <- ._1
> e <- a[m]
> j <- ._1
> }
> else {
> e <- a[m - h]
> h <- h + ._1
> j <- 1:h
> }
> a[m - h + j] <- e + j
> r <- if (nofun)
> x[a]
> else FUN(x[a], ...)
> if (simplify)
> out[, i] <- r
> else out[[i]] <- r
> i <- i + 1
> }
>
> I wonder what is the meaning of the statement "._1 <- 1:1".
> First question: what is the difference with "._1 <- 1"?
> Second question (perhaps answerd by the answer to the first): why not
> using "1" directly? E.g.:
> [...]
> h <- 1
> e <- a[m]
> e <- 1
> [...]
>
> Sorry if this is covered by the manuals, but it's not easy to search
> for the string "._1" with the usual search engines.
> Thank you!
> Giampiero
More information about the R-devel
mailing list