将对象以摊销的固定时间O(1)附加到R中的列表吗?
如果我有一些R list mylist,则可以obj像这样添加一个项目: mylist[[length(mylist)+1]] <- obj 但是肯定有一些更紧凑的方法。当我刚加入R时,我尝试这样写lappend(): lappend <- function(lst, obj) { lst[[length(lst)+1]] <- obj return(lst) } 但是由于R的按名称调用语义(当然lst会在调用时有效复制,因此当然不起作用,因此对的更改lst在.scope范围之外是不可见的lappend()。我知道您可以在R函数中进行环境黑客攻击,以到达函数范围并更改调用环境,但这似乎是编写简单附加函数的重击。 谁能建议一种更漂亮的方式呢?奖励积分(如果它适用于矢量和列表)。