Если у меня есть список R mylist, вы можете добавить к нему элемент obj так:
mylist[[length(mylist)+1]] <- obj
Но, конечно, есть еще более компактный способ. Когда я был новым в R, я пробовал писать lappend() следующим образом:
lappend <- function(lst, obj) {
    lst[[length(lst)+1]] <- obj
    return(lst)
}
 но, конечно, это не работает из-за семантики R по имени (lst эффективно копируется при вызове, поэтому изменения в lst не видны за пределами lappend(). Я знаю вас может взломать среду в R-функции, чтобы выйти за пределы вашей функции и мутировать вызывающую среду, но это похоже на большой молот, чтобы написать простую функцию append.
Может ли кто-нибудь предложить более красивый способ сделать это? Бонусные очки, если он работает как для векторов, так и для списков.
