这是非常基本的,但我似乎无法弄明白
假设我有一个变量条目列表:
lst <- list(a=1:4, b=rep('k', 5), c=3)
如果我想用指定的名称向其中添加一个向量,我应该可以通过以下方式添加:
c(f=1:5, lst)
但是不是创建一个名为'f'的条目,包含1 2 3 4 5,而是创建五个条目(f1 - f5),每个条目包含一个数字。
我如何压制这种行为?
我知道我可以使用
lst$f <- 1:5
但是我想在函数调用中附加列表...
答案 0 :(得分:21)
将f
转换为一个列表,然后连接它:
c(list(f=1:5), lst)
答案 1 :(得分:12)
这是一个简单的函数,可以将一个(或多个)项附加到列表中:
lappend <- function (lst, ...){
lst <- c(lst, list(...))
return(lst)
}
> a <- list()
> a
list()
> lappend(a,c(1,2,3))
[[1]]
[1] 1 2 3
> lappend(a, c(4,5,6), c(7,8,9))
[[1]]
[1] 4 5 6
[[2]]
[1] 7 8 9
希望有所帮助!! 再见。
答案 2 :(得分:10)
你可以这样做:
lst[[key]] <- any_object
(注意双方括号[[]]
)
any_object
当然可以是一个载体。
即使key
的确切值存储在变量中并且您事先不知道它,或者它是在{{1}中迭代的变量,此方法也具有可用的优点。 }例如循环:
for
答案 3 :(得分:7)
更多功能的解决方案是追加:
append(lst, list(f=1:5), after=0)# after - position to append