将命名向量添加到列表中

Tho*_*P85 19 r

这是非常基本的,但我似乎无法弄明白

假设我有一个变量条目列表:

lst <- list(a=1:4, b=rep('k', 5), c=3)
Run Code Online (Sandbox Code Playgroud)

如果我想用指定的名称添加一个向量,我应该能够通过以下方式这样做:

c(f=1:5, lst)
Run Code Online (Sandbox Code Playgroud)

但是不是创建一个名为'f'的条目,包含1 2 3 4 5,而是创建五个条目(f1-f5),每个条目包含一个数字.

我该如何抑制这种行为?

我知道我可以使用

lst$f <- 1:5
Run Code Online (Sandbox Code Playgroud)

但我想在函数调用中附加列表...

Hon*_*Ooi 22

f成一个列表,然后拼接它:

c(list(f=1:5), lst)


Mic*_*ele 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
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!! 再见.


Gui*_*rel 11

你可以这样做:

lst[[key]] <- any_object
Run Code Online (Sandbox Code Playgroud)

(注意双方括号[[]])

any_object 当然,它可以是一个载体.

这种方法的优点是即使精确值key存储在变量中并且您事先不知道它,或者例如它是在for循环中迭代的变量,也可以使用:

count <- list()
for (k in c("boys","girls","other")) {
  count[[k]] <- sum(data == k)
}
Run Code Online (Sandbox Code Playgroud)


Woj*_*ala 7

更多功能的解决方案附加:

append(lst, list(f=1:5), after=0)# after - position to append
Run Code Online (Sandbox Code Playgroud)