Remi.b Remi.b - 3 months ago 14
R Question

Append function that assign new value

I am trying to create a function

Append
that does not return a value but directly extend the first variable. Currently, to append
y
to
x
I do

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

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