Remi.b - 1 year ago 83

R Question

I am trying to create a function

`Append`

`y`

`x`

`x = append(x,y)`

I would like to be able to do

`Append(x,y)`

and get the same result. I first thought of something like

`Append = function(a,b,VarName) assign(VarName,append(a,b), envir = .GlobalEnv)`

Append(x,y,"x")

It works but it is quite unsatisfying to have to pass the name of the original variable. Is there a better solution?

Answer Source

Since you're doing this to learn, maybe a more R-like approach to in-place modification is a replacement function

```
`append_to<-` = function(x, ..., value) append(x, value)
```

used as

```
x = 1:5
append_to(x) <- 5:1
```

resulting in

```
> x
[1] 1 2 3 4 5 5 4 3 2 1
```