R: Incrementing an ff or ram object

add {ff} | R Documentation

## Incrementing an ff or ram object

### Description

Yet another assignment interface in order to allow to formulate `x[index,...,add=TRUE]<-value` in a way which works transparently, not only for ff, but also for ram objects: `add(x, value, index, ...)`.

### Usage

    add(x, ...)
    ## S3 method for class 'ff'
    add(x, value, ...)
    ## Default S3 method:
    add(x, value, ...)

### Arguments

`x` | an ff or ram object
`value` | the amount to increment, possibly recylcled
`...` | further arguments – especially index information – passed to `[<-` or `[<-.ff`

### Value

invisible()

### Note

Note that `add.default` changes the object in its parent frame and thus violates R's usual functional programming logic. Duplicated index positions should be avoided, because ff and ram objects behave differently:

      add.ff(x, 1, c(3,3))
      # will increment x at position 3 TWICE by 1, while
      add.default(x, 1, c(3,3))
      # will increment x at position 3 just ONCE by 1

### Author(s)

Jens Oehlschlägel

### See Also

`swap`, `[.ff`, `LimWarn`

### Examples

       message("incrementing parts of a vector")
       x <- ff(0, length=12)
       y <- rep(0, 12)
       add(x, 1, 1:6)
       add(y, 1, 1:6)
       x
       y

       message("incrementing parts of a matrix")
       x <- ff(0, dim=3:4)
       y <- array(0, dim=3:4)
       add(x, 1, 1:2, 1:2)
       add(y, 1, 1:2, 1:2)
       x
       y

       message("BEWARE that ff and ram methods differ in treatment of duplicated index positions")
       add(x, 1, c(3,3))
       add(y, 1, c(3,3))
       x
       y

       rm(x); gc()

[Package ff version 2.2-13 Index]